معرفی ۳ ماژول پایتون برای پردازش تصاویر – قسمت اول
موسسه پایا پروژه به عنوان متصدی انجام پروژه های پردازش تصویر با پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی متلب مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
دنیای امروزه پر از داده و اطلاعات است و تصاویر بخش قابل توجهی از این داده ها را تشکیل می دهند. با این حال، برای استفاده از آنها، این تصاویر باید پردازش شوند. پردازش تصویر نحوه تجزیه و تحلیل و دستکاری یک تصویر دیجیتال برای بهبود کیفیت آن یا استخراج اطلاعات از آن است.
وظایف معمول در پردازش تصویر شامل نمایش تصاویر، دستکاری های اساسی مانند برش، چرخش، روتوش و غیره، تقسیم بندی تصویر، طبقه بندی و استخراج ویژگی ها، بازیابی و تشخیص تصویر است. با توجه به محبوبیت روزافزون پایتون به عنوان یک زبان برنامه نویسی علمی و در دسترس بودن رایگان بسیاری از ابزارهای پیشرفته پردازش تصویر در اکوسیستم آن، انتخاب مناسبی برای این وظایف پردازش تصویر است. در این مطالب قصد داریم تا ۳ ماژول پرکاربرد در زمینه پردازش تصویر را معرفی و با استفاده از توابع مختلف، مثال هایی ساده را در نحوه پیاده سازی پردازش تصاویر ارائه کنیم.

معرفی ماژول Scikit-image
یک ماژول منبع باز پایتون است که با آرایه های NumPy کار می کند و همچنین الگوریتم ها و ابزارهای کاربردی را در زمینه تحقیقات، آموزش و کاربردهای صنعتی پیاده سازی می کند. Scikit-image یک کتابخانه نسبتاً ساده است، حتی برای کسانی که تازه کار با پایتون را شروع کرده اند. این کتابخانه بدون افت کیفیت تصاویر، طراحی شده و توسط یک جامعه فعال از داوطلبان نوشته شده است. شما می توانید ماژول را به عنوان skimage در پایتون نصب و استفاده کنید و بیشتر توابع در زیر ماژول ها یافت می شوند که برخی از نمونه های آن عبارتند از:
فیلتر کردن تصویر:


تطبیق الگو در اشیاء عکس:
با استفاده از تابع match_template می توانید فرایند تطبیق یک شی مورد نظر را در عکس انجام دهید.

معرفی ماژول NumPy:
NumPy یکی از کتابخانه های اصلی در برنامه نویسی پایتون است و از آرایه ها پشتیبانی می کند. یک تصویر اساسا یک آرایه استاندارد NumPy است که حاوی پیکسل هایی از نقاط داده است. بنابراین، با استفاده از عملیات اصلی NumPy، مانند برش، ماسک کردن و نمایه سازی فانتزی، می توانیم مقادیر پیکسل یک تصویر را تغییر دهیم. سپس می توانید تصویر را با استفاده از skimage بارگذاری کنید و با استفاده از Matplotlib آن را نمایش دهید.
ماسک کردن یک تصویر:
import numpy as np
from skimage import data
import matplotlib.pyplot as plt
%matplotlib inline
image = data.camera()
type(image)
numpy.ndarray #Image is a numpy array
mask = image < 87
image[mask]=255
plt.imshow(image, cmap=‘gray’)

معرفی ماژول SciPy:
SciPy یکی دیگر از ماژول های علمی اصلی پایتون (مانند NumPy) است و می تواند برای کارهای اولیه دستکاری و پردازش تصویر استفاده شود. به طور خاص، زیر ماژول scipy.ndimag توابعی را ارائه می دهد که بر روی آرایه های NumPy بعدی کار می کنند. این بسته در حال حاضر شامل توابع فیلتر خطی و غیر خطی، مورفولوژی باینری، درون یابی B-Spline و اندازه گیری شی است.
تار کردن تصاویر با استفاده از تابع gaussian_filter:

معرفی ماژول PIL/Pillow:
PIL (کتابخانه تصویربرداری پایتون) یک کتابخانه رایگان برای زبان برنامه نویسی پایتون است که برای باز کردن، دستکاری و ذخیره فرمت های مختلف فایل های تصویری پشتیبانی می کند. با این حال، توسعه آن با آخرین نسخه در سال 2009 دچار محبوبت زیادی شد. خوشبختانه، Pillow را در کنار این کتابخانه داریم، یک فورک و نسخه فعالانه از PIL که نصب آن آسانتر است، روی همه سیستمعاملهای اصلی اجرا میشود و از Python 3 پشتیبانی میکند. این کتابخانه شامل پردازش تصویر اولیه است و مثال زیر یک تصویر را با استفاده از تابع ImageFilter روشن تر می کند:

جمع بندی:
در این مطالب به بررسی مقدماتی سه کتابخانه و یا ماژول پر استفاده در پایتون، برای پردازش تصاویر پرداختیم و با استفاده از چندین تابع، تصاویر مختلف رو دستکاری کردیم. در قسمت بعدی درباره هر ماژول و توابع اون بیشتر صحبت می کنیم و به معرفی توابع پر استفاده و مثال های جامع تری از هر کتابخونه می پردازیم.

