معرفی ۳ ماژول پایتون برای پردازش تصاویر – قسمت سوم
موسسه پایا پروژه به عنوان متصدی انجام پروژه های پردازش تصویر با پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی متلب مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
در قسمت قبلی به معرفی و کار با ماژول sciki-Image پرداختیم و مثال های متنوعی از توابع اون رو ارائه کردیم. در این پست قصد داریم تا به آموزش کتابخانه numpy در پایتون بپردازیم.
کتابخانه numpy، یک کتابخانه بسیار پرکاربرد در حوزه کامپیوتر ساینس است. این کتابخانه امکانات زیادی برای کار با آرایهها دارد. از این رو یادگیری آن برای همه محققانی که میخواهند در حوزه پردازش تصاویر فعالیت داشته باشند ضروری است و در این پست به توضیحات جامع و مثال های متنوعی از این کتابخانه می پردازیم.
۱ـ مقدمه
دادهها از اهمیت ویژهای در حوزه علوم کامپیوتر (Computer Science) برخوردار هستند. شاید وقتی کلمه داده را بشنوید، سریع یک مجموعه عدد به صورت ماتریس در ذهن شما شکل بگیرد. اما، باید به شما بگویم که داده در شکلهای مختلفی میتواند ظاهر شود و ممکن است ظاهرش عدد نباشد! مثلا متن را میتوانیم یک داده در نظر بگیریم. تصویر هم میتواند یک داده باشد.
طبیعتا، صوت هم میتواند یک داده باشد. بنابراین، اگرچه اینها از لحاظ ظاهری شکل متفاوتی از دادههای عددی دارند، اما بازهم داده محسوب میشوند.

گفتیم متن، تصویر و صوت از لحاظ ظاهری شکل متفاوتی با دادههای عددی دارند ولی آیا در باطن نیز با یکدیگر فرق دارند؟! بله، متن، تصویر و صوت در باطن همان دادههای عددی هستند! در واقع صرفا نمایش آنها به صورت شکل بالا می باشد، اما پشت این رنگ و لعاب مجموعه ای از اعداد می باشد.
به عنوان مثال، تصاویر را میتوان به صورت آرایه دوبعدی از اعداد درنظر گرفت که این اعداد شدت روشنایی هر پیکسل را نشان میدهند. دادههای متنی را نیز میتوان از روشهای متعددی به داده عددی تبدیل کرد. وقتی میگوییم پردازش تصویر، پردازش متن یا پردازش صوت، منظورمان پردازش مستقیم روی شکلهای ظاهری (شکل بالا) نیست، بلکه پردازش روی شکل باطن آنها (همان اعداد) است. پس، صرف نظر از اینکه دادهها از چه نوعی هستند، اولین قدم تبدیل آنها به آرایهای از اعداد است تا قابل پردازش شوند.

۲ـ آموزش نصب کتابخانه numpy
برای اینکه این ماژول رو نصب کنید کافیه از pip کمک بگیرید:
Pip install Numpy
۳ـ استفاده از کتابخانه numpy
نصب نامپای بسیار ساده است. برای نصب نامپای کافی است که CMD را در ویندوز باز کرده و بنویسید:
pip install numpy
با اجرای دستور بالا نامپای نصب خواهد شد و شما میتوانید آن را فراخوانی کنید. برای فراخوانی نامپای در پایتون، فقط کافی است که دستور زیر را تایپ کنید:
import numpy
اما میتوانید یک نام خلاصه هم برای نامپای درنظر بگیرید. معمولا نام کوتاه شده np برای این کتابخانه درنظر گرفته میشود:
import numpy as np
اکنون کتابخانه نامپای فراخوانی شده و آماده استفاده است.
۴ـ معرفی توابع کتابخانه Numpy و پردازش تصویر با پایتون
کتابخانه Numpy یکی از کتابخانههای برنامهنویسی کلیدی در زبان برنامهنویسی پایتون محسوب میشود که پشتیبانی از نوع دادهای آرایه (Array Datatype) را در پایتون فراهم میکند. این کتابخانه، یکی از مهمترین کتابخانههای توسعه داده شده برای کاربردهای پردازش تصویر با پایتون نیز محسوب میشود که به طور رایگان در دسترس کاربران و برنامهنویسان قرار گرفته شده است.
به طور کلی، یک تصویر (Image) یک آرایه استاندارد قابل تعریف توسط کتابخانه Numpy محسوب میشود که شامل پیکسلهای متناظر با نقاط دادهای خواهد بود. بنابراین، با استفاده از عملیات پایهای تعریف شده در Numpy نظیر بخشبندی (Slicing)، پوشش گذاری (Masking) ، شاخص گذاری چندگانه (Fancy Indexing) و سایر موارد، کاربر قادر خواهد بود تا مقادیر پیکسلهای یک تصویر را تغییر دهد. در کاربردهای پردازش تصویر با پایتون و کتابخانه Numpy ، میتوان از کتابخانه skimage برای بارگذاری تصاویر و از کتابخانه Matplotlib جهت نمایش آنها استفاده کرد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه Numpy قابل انجام است، نمایش داده خواهد شد.
۴ـ۱ پوشش گذاری تصاویر
پوشش گذاری در تصاویر و یا image marking یکی از فرایندهای پایهای در پردازش تصویر محسوب میشود که به وسیله آن، بخشهایی از یک تصویر پنهان و بخشهای دیگر موجود در تصویر نمایان میشوند. کد زیر مثالی از مارکینگ را در پایتون پیاده سازی می کند:


۴ـ۲ تولید تصاویر یک رنگ و ترکیب آنها با یکدیگر
با تنظیم مقادیر رنگ های دیگر روی 0، تصاویر تک رنگ ایجاد کنید و آنها را به صورت افقی با np.concatenate در کنار یکدیگر نمایش دهید. همچنین میتوانید تصاویر را با استفاده از np.hstack یا np.c_ به هم متصل کنید.

کد بالا یک تصویر را دریافت و در غالب سه رنگ، در کنار یکدیگر قرار می دهد:

۴ـ۳ تغییر تصاویر با استفاده از توابع cut و یا برش
با تعیین یک ناحیه برای برش، می توانید تصاویر خود را به صورت مستطیل برش دهید.

۵ـ جمع بندی
در این آموزش درباره ماژول numpy و توابع اون صحبت کردیم و همچنین مثال هایی رو برای پردازش تصاویر در پایتون ارائه کردیم. در قسمت بعدی قصد داریم تا درباره ماژول Scipy به بحث و گفت و گو بپردازیم، کتابخونه ای که برای پردازش تصاویر بدون افت کیفیت اون ها استفاده میشه و در زمینه های پردازش تصاویر و کار بر روی آرایه ها کاربرد داره.

