تصاویر بخش بزرگی از دنیای اطلاعات را تشکیل می دهند که جهان اطرافمان را توصیف می کنند. آن ها اطلاعات مفید و مهمی را شامل می شوند که هر کدام می توانند به نوبه ی خودشان بسیار حیاتی باشند. تمامی این اطلاعات می تواند با کمک تکنیکی به نام پردازش تصویر به دست آید.
پایتون یکی از زبان های برنامه نویسی است که کتابخانه ها و ابزارهای کاربردی و پرقدرتی دارد تا ما به کمک آنها بتوانیم به این مهم دست یابیم.
همانطور که از نامش پیداست، پردازش تصویر به معنای تجزیه و تحلیل و استخراج اطلاعات از داده های عکسی که در اختیارمان گذاشته شده می باشد. چیزی که باید بدانیم این است که خروجی این پروسه لزوما تصویر نیست و می تواند تمام ویژگی های مربوط به آن تصویر باشد. به زبان ساده تر، به استفاده از الگوریتم های کامپیوتری جهت انجام پردازش تصویر، image processing گفته می شود.
الگوریتم های مختلفی برای انجام این کار وجود دارند. همچون:
تاکنون ابزارهای متنوعی برای پردازش تصویر با پایتون معرفی شده اند. این دسته از ابزارها، کتابخانه ها (Libraries) و بسته های (Packages) برنامه نویسی، امکانات بسیار متنوع و مفیدی برای تبدیل تصاویر (Image Transformation)، فهمیدن اطلاعات موجود در این داده ها و به طور کلی، دستکاری و پردازش تصاویر در اختیار کاربران و برنامه نویسان قرار می دهند. به عبارت دیگر، ابزارهای پردازش تصویر با پایتون به کاربران این امکان را می دهند تا به شکل ساده تری داده های تصویری را تحلیل و اطلاعات بامعنی از آن ها استخراج کنند.
از جمله رایج ترین فرایند های پردازش تصویر با پایتون که توسط ابزارها و کتابخانه های این زبان برنامه نویسی قابل اجرا هستند، می توان به مواردی نظیر برش (Cropping)، برعکس کردن (Flipping)، چرخاندن (Rotating)، قطعهبندی تصویر (Image Segmentation)، دستهبندی تصویر (Image Classification)، استخراج ویژگی (Feature Extraction)، ترمیم تصاویر (Image Restoration) و بازشناسی تصویر (Image Recognition) اشاره کرد.
در ادامه با سه ابزار و کتابخانه ی پرکاربرد جهت دستکاری و پردازش تصویر با پایتون آشنا خواهیم شد.
ابزاری از نوع open source بوده که به طور رایگان در اختیار کاربران قرار گرفته است. این ابزار بسته ای (packet) بوده که شامل مجموعه ای از الگوریتم ها و ابزارهای پردازش تصویر جهت استفاده در کاربردهای تحقیقاتی، آموزشی و صنعتی می باشد.
کی از مهم ترین کتابخانه های توسعه داده شده برای کاربردهای پردازش تصویر با پایتون نیز محسوب می شود که به طور رایگان در دسترس کاربران و برنامه نویسان قرار گرفته شده است. به طور کلی، تصویر، یک آرایه استاندارد قابل تعریف توسط کتابخانه Numpy محسوب می شود که شامل پیکسل های متناظر با نقاط داده ای خواهد بود. بنابراین، با استفاده از عملیات پایه ای تعریف شده در Numpy نظیر بخشبندی (Slicing)، پوشش گذاری (Masking)، شاخص گذاری چندگانه (Fancy Indexing) و سایر موارد، کاربر قادر خواهد بود تا مقادیر پیکسلهای یک تصویر را تغییر دهد.
کتابخانه OpenCV که مخفف Open Source Computer Vision Libraryاست، یکی از پراستفاده ترین کتابخانه های برنامه نویسی برای کاربردهای بینایی کامپیوتر (Computer Vision) محسوب میشود. کتابخانه OpenCV-Python، واسط برنامهنویسی کاربردی (API) برای کتابخانه OpenCV در زبان پایتون محسوب می شود. این کتابخانه نه تنها از سرعت بسیار بالایی برخوردار است (زیرا کدهای پیادهسازی آن توسط زبان C و C++ نوشته شده است)، بلکه کد نویسی برنامه های کاربردی مرتبط با پردازش تصویر با پایتون و به کاراندازی آن ها را تسهیل می بخشد.
منابع:
https://neptune.ai/blog/image-processing-python
https://blog.faradars.org/image-processing-in-python