پردازش تصویر با پایتون – راهنمای کاربردی

۱۹۵۰۱ بازدید
آخرین به‌روزرسانی: ۲۵ آذر ۱۴۰۳
زمان مطالعه: ۱۶ دقیقه
دانلود PDF مقاله
پردازش تصویر با پایتون – راهنمای کاربردیپردازش تصویر با پایتون – راهنمای کاربردی

در این مطلب، با مبحث پردازش تصویر با پایتون آشنا خواهید شد. «پردازش تصویر» (Image Processing) یکی از حوزه‌های تأثیرگذار و مهم در «هوش مصنوعی» (Artificial Intelligence) محسوب می‌شود و در حوزه‌های دیگر نظیر «بینایی کامپیوتر» (Computer Vision) و استخراج اطلاعات بامعنی از داده‌های تصویری، نقش بسیار مهمی ایفا می‌کند.

997696

اگرچه بسیاری از کاربران، برنامه‌نویسان و یا توسعه‌دهندگان برنامه‌های کاربردی، از محیط و زبان برنامه‌نویسی «متلب» (MATLAB) جهت توسعه برنامه‌های کاربردی مرتبط با حوزه پردازش تصویر استفاده می‌کنند، با این حال «زبان برنامه‌نویسی پایتون» (Python Programming Language) ابزارهای بسیار مفید و کاربردی جهت پردازش و «دستکاری» (Manipulation) تصاویر دیجیتالی در اختیار این دسته از افراد قرار می‌دهد. در این مطلب، برخی از مهم‌ترین ابزارهای پردازش تصویر با پایتون و دستکاری تصاویر دیجیتالی در این زبان برنامه‌نویسی محبوب مورد بررسی قرار می‌گیرند.

در «علوم کامپیوتر» (Computer Science)، به استفاده از الگوریتم‌های کامپیوتری برای انجام عملیات پردازش تصویر روی تصاویر دیجیتالی، «پردازش تصاویر دیجیتال» (Digital Image Processing) گفته می‌شود. معمولا از الگوریتم‌های پردازش تصاویر دیجیتال جهت «تحلیل تصاویر» (Image Analysis)، دستکاری تصاویر، «بهبود تصاویر» (Image Enhancement)، استخراج اطلاعات مفید از تصاویر و یا بهینه‌سازی «ویژگی‌های مشخصه» (Characteristics) تصاویر دیجیتال استفاده می‌شود. در این مطلب، قرار است مهم‌ترین ابزارهای پردازش تصویر با پایتون معرفی می‌شوند.

پردازش تصویر با پایتون

تاکنون ابزارهای متنوعی برای پردازش تصویر با پایتون معرفی شده‌اند. این دسته از ابزارها، «کتابخانه‌ها» (Libraries) و «بسته‌های» (Packages) برنامه‌نویسی، امکانات بسیار متنوع و مفیدی برای «تبدیل تصاویر» (Image Transformation)، فهمیدن اطلاعات موجود در این داده‌ها و به طور کلی، دستکاری و پردازش تصاویر در اختیار کاربران و برنامه‌نویسان قرار می‌دهند. به عبارت دیگر، ابزارهای پردازش تصویر با پایتون به کاربران این امکان را می‌دهند تا به شکل بسیار ساده و «شهودی» (Intuitive) داده‌های تصویری را تحلیل و اطلاعات بامعنی از آن‌ها استخراج کنند.

جهان امروز و زندگی انسان‌ها، توسط داده‌ها احاطه شده‌اند و تصاویر بخش عمده‌ای از این داده‌ها را تشکیل می‌دهند. با این حال، پیش از اینکه تصاویر دیجیتالی قابل استفاده شوند نیاز است تا پردازش، تحلیل و دستکاری شوند؛ پردازش، تحلیل و دستکاری تصاویر، با هدف بهبود کیفیت آن‌ها یا استخراج اطلاعات مفید از تصاویر انجام می‌شود.

زبان پایتون می‌تواند به عنوان ابزاری برای انجام عملیات پردازشی روی تصاویر دیجیتالی مورد استفاده قرار بگیرد. از جمله متداول‌ترین فرایندهای پردازش تصویر با پایتون که توسط ابزارها و کتابخانه‌های این زبان برنامه‌نویسی قابل اجرا هستند، می‌توان به مواردی نظیر «برش» (Cropping)، «برعکس کردن» (Flipping)، «چرخاندن» (Rotating)، «قطعه‌بندی تصویر» (Image Segmentation)، «دسته‌بندی تصویر» (Image Classification)، «استخراج ویژگی» (Feature Extraction)، «ترمیم تصاویر» (Image Restoration) و «بازشناسی تصویر» (Image Recognition) اشاره کرد.

زبان برنامه‌نویسی پایتون ابزار بسیار مناسبی برای عملکردهای ذکر شده در حوزه پردازش تصویر محسوب می‌شود. شاید تا چند سال پیش و با توجه به وجود ابزاری نظیر متلب و یکه‌تازی آن در این حوزه، ایده پردازش تصویر با پایتون و استفاده از آن برای دستکاری تصاویر، ایده بسیار ابتدایی و ناکارآمدی محسوب می‌شد. ولی در چند سال اخیر، محبوبیت زبان پایتون به عنوان یک «زبان برنامه‌نویسی علمی» (Scientific Programming Language)، در میان جامعه برنامه‌نویسان به شدت افزایش یافته است. همچنین، محبوبیت روز افزون این زبان برنامه‌نویسی سبب شده است تا ابزارهای بسیار پیشرفته پردازش تصویر، به طور رایگان، به عنوان بخشی از اکوسیستم این زبان برنامه‌نویسی در دسترس کاربران و برنامه‌نویسان قرار بگیرد.

در این مطلب، با 10 ابزار و کتابخانه مهم و پرکاربرد جهت دستکاری و پردازش تصویر با پایتون آشنا خواهید شد. این دسته از ابزارها و کتابخانه‌های برنامه‌نویسی، فرایند تحلیل تصاویر دیجیتال، استخراج اطلاعات با معنی از آن‌ها و در نتیجه، پردازش تصویر با پایتون را برای کاربران و برنامه‌نویسان آسان می‌کنند.

پردازش تصاویر با پایتون با ابزار SciKit-Image

ابزار SciKit-Image، یک بسته برنامه‌نویسی «منبع باز» (Open Source) است که با ساختار آرایه‌ای تعریف شده توسط کتابخانه NumPy کار می‌کند. این ابزار، یکی از مهم‌ترین کتابخانه‌های پردازش تصویر با پایتون محسوب می‌شود که به طور رایگان در دسترس کاربران و برنامه‌نویسان قرار گرفته شده است. در بسته SciKit-Image، مجموعه‌ای از الگوریتم‌ها و ابزارهای پردازش تصویر، جهت استفاده در کاربردهای تحقیقاتی، آموزشی و صنعتی در اختیار کاربران قرار داده شده است.

کار کردن با توابع و الگوریتم‌های SciKit-Image (که جهت پردازش تصویر با پایتون استفاده می‌شوند)، حتی برای کسانی که برنامه‌نویس مبتدی هستند و آشنایی ابتدایی از اکوسیستم پایتون دارند، بسیار ساده و سر راست است. کدهای پیاده‌سازی شده در ابزار SciKit-Image از کیفیت بسیار بالایی برخوردارند و توسط جامعه برنامه‌نویسی بسیار فعال و متشکل از برنامه‌نویسان داوطلب پشتیبانی و به‌روزرسانی می‌شوند.

این بسته را می‌توان با استفاده از skimage در زبان پایتون import کرد. همچنین، بسیاری از توابع و الگوریتم‌های پیاده‌سازی شده را می‌توان در «زیر واحدهای» (Submodules) این بسته برنامه‌نویسی پیدا کرد و مورد استفاده قرار داد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط ابزار SciKit-Image قابل انجام است، نمایش داده خواهد شد.

«فیلتر گذاری روی تصاویر» (Image Filtering): با استفاده از این ابزار، می‌توان فیلترهای «بالاگذر» (High Pas) و «پایین گذر» (Low Pass) را جهت انجام پردازش‌هایی نظیر «تشخیص لبه» (Edge Detection) روی تصاویر اعمال کرد.

پردازش تصویر با پایتون

«تطبیق الگو» (Template Matching): یکی از ساده‌ترین فرایندهای پردازش تصویر با پایتون و ابزار SciKit-Image، تطبیق الگو است. در کاربردهای پردازش تصویر، برای تشخیص ظاهر شدن یک تصویر الگو در یک یا مجموعه‌ای از تصاویر دیگر، از الگوریتم‌های تطبیق الگو استفاده می‌شود.

پردازش تصویر با پایتون

کتابخانه Numpy و پردازش تصویر با پایتون

کتابخانه Numpy یکی از کتابخانه‌های برنامه‌نویسی کلیدی در زبان برنامه‌نویسی پایتون محسوب می‌شود که پشتیبانی از «نوع داده‌ای آرایه» (Array Datatype) را در پایتون فراهم می‌کند. این کتابخانه، یکی از مهم‌ترین کتابخانه‌های توسعه داده شده برای کاربردهای پردازش تصویر با پایتون نیز محسوب می‌شود که به طور رایگان در دسترس کاربران و برنامه‌نویسان قرار گرفته شده است.

به طور کلی، یک «تصویر» (Image) یک آرایه استاندارد قابل تعریف توسط کتابخانه Numpy محسوب می‌شود که شامل پیکسل‌های متناظر با نقاط داده‌ای خواهد بود. بنابراین، با استفاده از عملیات پایه‌ای تعریف شده در Numpy نظیر «بخش‌بندی» (Slicing)، «پوشش گذاری» (Masking)، «شاخص گذاری چندگانه» (Fancy Indexing) و سایر موارد، کاربر قادر خواهد بود تا مقادیر پیکسل‌های یک تصویر را تغییر دهد. در کاربرد‌های پردازش تصویر با پایتون و کتابخانه Numpy، می‌توان از کتابخانه skimage برای بارگذاری تصاویر و از کتابخانه Matplotlib جهت نمایش آن‌ها استفاده کرد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه Numpy قابل انجام است، نمایش داده خواهد شد.

«پوشش گذاری تصاویر» (Image Masking): یکی از فرایندهای پایه‌ای در پردازش تصویر محسوب می‌شود که به وسیله آن، بخش‌هایی از یک تصویر پنهان و بخش‌های دیگر موجود در تصویر نمایان می‌شوند.

پردازش تصویر با پایتون

کتابخانه SciPy

کتابخانه SciPy یکی دیگر از کتابخانه‌های کلیدی برای برنامه‌نویسی علمی در زبان برنامه‌نویسی پایتون محسوب می‌شود (همانند Numpy). از این کتابخانه مهم نیز می‌توان برای پیاده‌سازی برخی از کاربردهای پردازش تصویر با پایتون استفاده کرد. کتابخانه SciPy حاوی توابع و الگوریتم‌هایی است که به راحتی می‌توان از آن‌ها برای انجام عملیات (ساده) دستکاری و پردازش تصویر با پایتون استفاده کرد.

به طور ویژه، زیر واحد scipy.ndimage توابع عملیاتی لازم جهت انجام عملیات روی آرایه‌های چندبُعدی NumPy (آرایه‌هایی که برای نمایش تصاویر، در قالب آرایه، مورد استفاده قرار می‌گیرند) را فراهم می‌آورد. هم‌اکنون کتابخانه SciPy، توابع لازم برای «فیلتر گذاری خطی و غیرخطی» (Linear and Non-Linear Filtering)، «مورفولوژی باینری» (Binary Morphology)، «درون‌یابی تصویر» (Image Interpolation) و «اندازه‌گیری اشیاء» (Object Measurement) را در اختیار کاربران و برنامه‌نویسان قرار می‌دهد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه SciPy قابل انجام است، نمایش داده خواهد شد.

استفاده از کتابخانه SciPy جهت «تار کردن تصویر» (Image Blurring) با استفاده از «فیلتر گاوسی» (Gaussian Filter): یکی از فرایندهای ساده پردازش تصویر با پایتون و کتابخانه SciPy، امکان اعمال فیلتر گاوسی روی تصاویر است که معمولا برای تار کردن (Blurring) تصاویر مورد استفاده قرار می‌گیرد.

پردازش تصویر با پایتون

پردازش تصویر با پایتون

فیلتر prewitt:

پردازش تصویر با پایتون

فیلتر sobel:

پردازش تصویر با پایتون

کتابخانه‌های PIL و Pillow

کتابخانه PIL که مخفف عبارت Python Imaging Library یا کتابخانه تصویر پایتون است، یکی از کتابخانه‌های پردازش تصویر با پایتون محسوب می‌شود. این کتابخانه، پشتیبانی از عملیات مرتبط با پردازش تصویر نظیر باز کردن، دستکاری و ذخیره‌سازی تصاویر در فرمت‌های مختلف را به زبان پایتون اضافه می‌کند. با این حال، توسعه آن از سال 2009 دچار وقفه شده است.

خوشبختانه، کتابخانه دیگری به نام Pillow در زبان پایتون وجود دارد که نسخه گسترش‌یافته‌ای از کتابخانه PIL محسوب و به طور فعال توسط جامعه برنامه‌نویسی پایتون پشتیبانی می‌شود. نصب ساده، قابلیت اجرا در پلتفرم‌ها و سیستم‌های عامل اصلی و پشتیبانی از نسخه 3 زبان پایتون، از جمله نقاط قوت این کتابخانه محسوب می‌شود که توسط برنامه‌نویسان جهت پردازش تصویر با پایتون مورد استفاده قرار می‌گیرد.

کتابخانه Pillow مجموعه‌ای از قابلیت‌های پردازش تصویر پایه نظیر «عملیات نقطه‌ای» (Point Operations)، فیلتر گذاری با مجموعه‌ای از «کرنل‌های پیچشی» (Convolutional Kernels) تعبیه شده و «تبدیلات فضای رنگی» (Color Space Conversion) را در اختیار کاربر و برنامه‌نویس قرار می‌دهد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه‌های PIL و Pillow قابل انجام هستند، نمایش داده خواهد شد.

«بهبود تصاویر» (Image Enhancement): با استفاده از ماژول ImageFilter در کتابخانه Pillow، می‌توان تصاویر دیجیتالی را از  طریق دستکاری مقادیر «کنتراست» (Contrast)، بهبود بخشید.

پردازش تصویر با پایتون

کتابخانه OpenCV-Python

کتابخانه OpenCV که مخفف Open Source Computer Vision Library یا کتابخانه منبع باز بینایی کامپیوتر است، یکی از پراستفاده‌ترین کتابخانه‌های برنامه‌نویسی برای کاربردهای «بینایی کامپیوتر» (Computer Vision) محسوب می‌شود. کتابخانه OpenCV-Python، واسط برنامه‌نویسی کاربردی (API) برای کتابخانه OpenCV در زبان پایتون محسوب می‌شود.

این کتابخانه نه تنها از سرعت بسیار بالایی برخوردار است (زیرا کدهای پیاده‌سازی آن توسط زبان C و C++‎ نوشته شده است)، بلکه کد نویسی برنامه‌های کاربردی مرتبط با پردازش تصویر با پایتون و به‌کاراندازی (Deploy) آن‌ها را تسهیل می‌بخشد. چنین ویژگی‌هایی، کتابخانه OpenCV-Python را به بهترین انتخاب جهت پردازش تصویر با پایتون و پیاده‌سازی برنامه‌های بینایی کامپیوتر در این زبان بدل کرده است (به ویژه اگر برنامه‌های بینایی کامپیوتر توسعه داده شده، به انجام محاسبات ریاضی پیچیده و سنگین نیاز داشته باشند) . در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه OpenCV-Python قابل انجام است، نمایش داده خواهد شد.

«ترکیب تصاویر» (Image Blending): با استفاده از قابلیتی به نام «هرم تصاویر» (Image Pyramid) در OpenCV-Python، می‌توان تصاویر متناظر با یک سیب و یک پرتقال را با یکدیگر ترکیب و یک تصویر جدید درست کرد.

کدهایی که در ادامه آورده‌ایم، به ۲ تصویر «سیب» و «پرتقال» به‌عنوان ورودی نیاز دارند و خروجی نیز با تصاویری به‌نام‌های Direct_blending.jpg  و Pyramid_blending2.jpg ذخیره می‌شود.

برای دانلود تصاویر مورد نیاز در پروژه «ترکیب تصاویر» اینجا کلیک کنید. لازم به ذکر است که پس از دانلود می‌بایست فایل را از حالت زیپ خارج و تصاویر را در کنار کدها قرار دهید.

خروجی کدهای فوق، شبیه به تصاویری که در ادامه آورده شده، خواهد بود.
پردازش تصویر با پایتون

کتابخانه SimpleCV

کتابخانه SimpleCV یکی دیگر از چارچوب‌های منبع باز جهت پردازش تصویر با پایتون و پیاده‌سازی برنامه‌های کاربردی مرتبط با حوزه بینایی کامپیوتر محسوب می‌شود. با استفاده از این کتابخانه، کاربران قادر خواهند بود به برخی از کتابخانه‌های سطح بالای بینایی کامپیوتر نظیر OpenCV دسترسی داشته باشند.

ویژگی مهم این کتابخانه این است که کاربران مبتدی، بدون این که لازم باشد تا اطلاعات و دانش کافی در مورد مفاهیمی نظیر «عمق‌های بیتی» (Bit Depths)، فرمت‌های فایلی (File Format)، «فضاهای رنگی» (Color Spaces) و سایر موارد داشته باشند، به راحتی قادر به کار کردن با این کتابخانه و انجام عملیات پردازش تصویر با پایتون خواهند بود. بازه یادگیری کتابخانه SimpleCV به مراتب کوتاه‌تر از OpenCV است. برخی از مزایای این کتابخانه عبارتند از:

  • برنامه‌نویسان مبتدی، به راحتی قادر به نوشتن برنامه‌های مرتبط با بینایی کامپیوتر توسط این کتابخانه هستند.
  • این کتابخانه، توانایی کار کردن با جریان‌های ویدئویی (Video Streams)، تصاویر، فایل‌های ویدئویی و سایر موارد را دارد (به عبارت دیگر، با انواع فایل‌ها و فرمت‌های ویدئویی و تصویری سازگار است).

در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه SimpleCV قابل انجام است، نمایش داده خواهد شد.

تابع «آستانه‌گذاری» (Thresholding): تصویر زیر، نحوه عملکرد تابع Thresholding در کتابخانه SimpleCV را نشان می‌دهد. این تابع، هر کدام از پیکسل‌های یک تصویر را بسته به میزان «روشنایی» (Brightness) آن‌ها، سفید یا سیاه می‌کند.

پردازش تصویر با پایتون

«تشخیص لبه» (Edge Detection): در تصویر زیر، نحوه عملکرد تابع تشخیص لبه در کتابخانه SimpleCV نشان داده شده است. این تابع، مقادیر پیکسلی متناظر با لبه‌های تصویر را با رنگ سفید نشان می‌دهد.

پردازش تصویر با پایتون

مشخص کردن «نقاط کلیدی» (Keypoints) در تصویر: نقاط کلیدی، معمولا مناطق خاص بصری در تصویر هستند که برای انواع مختلفی از کاربردهای بینایی کامپیوتر نظیر «بازسازی سه‌بُعدی» (3D Reconstruction) و «تطبیق تصویر» (Image Matching)‌ مورد استفاده قرار می‌گیرند. پیدا کردن نقاط کلیدی در کتابخانه SimpleCV بسیار ساده است (تابع Image.findKeypoints).

پردازش تصویر با پایتون

کتابخانه Mahotas

کتابخانه Mahotas یکی دیگر از کتابخانه‌های موجود جهت پردازش تصویر با پایتون و پیاده‌سازی برنامه‌های کاربردی مرتبط با حوزه بینایی کامپیوتر است. در این کتابخانه، علاوه بر اینکه توابع پردازش تصویر مرسوم نظیر «فیلتر گذاری» (Filtering) و «عملیات مورفولوژیکی» (Morphological Operations) تعریف شده است، تعدادی توابع بینایی کامپیوتر مدرن جهت «محاسبه ویژگی» (Feature Computation) نظیر «تشخیص نقاط مهم» (Interest Point Detection) و «توصیف کننده‌های محلی» (Local Descriptors) نیز گنجانده شده است.

واسط برنامه‌نویسی این کتابخانه توسط زبان پایتون نوشته شده است (که برای توسعه سریع برنامه‌های کاربردی مرتبط با پردازش تصویر با پایتون و یا برنامه‌های بینایی کامپیوتر بسیار مناسب است)، ولی الگوریتم‌ها در زبان C++‎ پیاده‌سازی شده‌اند (که سبب افزایش سرعت اجرای کدهای این کتابخانه می‌شود). همچنین، کتابخانه Mahotas علاوه بر اینکه سرعت بالایی دارد، «وابستگی‌های» (Dependencies) برنامه‌نویسی بسیار کمی دارد.

در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه Mahotas قابل انجام است، نمایش داده خواهد شد.

حل مسأله «پیدا کردن والی» (Finding Wally) توسط کتابخانه Mahotas: هدف از این مسأله پیدا کردن شخصیت والی (Wally) در تصویر زیر است.

پردازش تصویر با پایتون

پردازش تصویر با پایتون

کتابخانه SimpleITK

کتابخانه SimpleITK، یک سیستم منبع باز و «چند سکویی» (Cross-Platform) است که مجموعه‌ای کامل از ابزارهای نرم‌افزاری جهت تحلیل تصاویر دیجیتال را در اختیار برنامه‌نویسان و توسعه‌دهندگان قرار می‌دهد. ویژگی مهم کتابخانه SimpleITK، پشتیبانی از تعداد زیادی مؤلفه نرم‌افزاری است که برای انجام عملیات پردازشی نظیر فیلتر گذاری، «قطعه‌بندی تصاویر» (Image Segmentation) و «ثبت تصویر» (Image Registration) روی تصاویر دیجیتالی مورد استفاده قرار می‌گیرند. این کتابخانه به زبان C++‌‎ نوشته شده است ولی برای دامنه وسیعی از زبان‌های برنامه‌نویسی، از جمله پایتون منتشر شده است.

در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه SimpleITK قابل انجام است، نمایش داده خواهد شد.

کاربرد کتابخانه SimpleITK: مصورسازی فرایند از نوع سخت ثبت تصاویر CT/MR (فرایند Rigid CT/MR Registration)، که توسط کتابخانه SimpleITK و زبان پایتون (پردازش تصویر با پایتون) توسعه داده شده است.

پردازش تصویر با پایتون

کتابخانه pgmagick

کتابخانه pgmagick، یک Wrapper توسعه داده شده جهت استفاده از کتابخانه GraphicsMagick در زبان پایتون محسوب می‌شود. کتابخانه GraphicsMagick، یک سیستم پردازش تصویر است که به دلیل امکانات فوق‌العاده و گسترده، به آن «چاقوی سوئیسی» (Swiss Knife) پردازش تصویر نیز گفته می‌شود.

در این کتابخانه، مجموعه‌ای گسترده و قدرتمند از ابزارها و کتابخانه‌های برنامه‌نویسی (جهت پردازش تصویر) تعبیه شده است که از امکاناتی نظیر خواندن، نوشتن و دستکاری تصاویر دیجیتالی در بیش از 88 فرمت تصویری عمده نظیر GIF ،JPEG ،JPEG-2000 ،PNG ،TIFF و سایر موارد پشتیبانی می‌کند.

در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه pgmagick قابل انجام است، نمایش داده خواهد شد.

«مقیاس‌گذاری تصویر» (Image Scaling): 

پردازش تصویر با پایتون

«استخراج لبه» (Edge Extraction):

پردازش تصویر با پایتون

ابزار Pycairo

ابزار Pycairo، مجموعه‌ای از «مقیدسازی‌های» (Bindings) توسعه داده شده در زبان پایتون، جهت استفاده از کتابخانه گرافیکی Cairo است. کتابخانه Cairo نیز یک کتابخانه گرافیکی دوبُعدی جهت رسم گرافیک‌های برداری محسوب می‌شود. «گرافیک‌های برداری» (Vector Graphics) از آن جهت حائز اهمیت هستند که در اثر فرایندهای پردازشی نظیر «تغییر اندازه» (Resize) یا «تبدیل» (Transformation)، وضوح خود را از دست نمی‌دهند. ابزار Pycairo برای فراخوانی دستورات کتابخانه Cairo در زبان پایتون به کار می‌رود.

در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه Pycairo قابل انجام است، نمایش داده خواهد شد.

رسم خط با استفاده از ابزار Pycairo: خط، یکی از ساده‌ترین گرافیک‌های برداری محسوب می‌شود. برای رسم یک خط، دو تابع از ابزار Pycairo باید فراخوانی شوند. نقطه آغازین خط، توسط فراخوانی تابع move_to()‎ مشخص می‌شود. نقطه پایانی یک خط نیز توسط فراخوانی به تابع line_to()‎ مشخص می‌شود.

پردازش تصویر با پایتون

عملیات Fill و Stroke با استفاده از ابزار Pycairo: در این نمونه کاربرد ابزار Pycairo (نمایش داده شده در شکل زیر)، از عملیات Stroke برای رسم حاشیه‌های شکل و از عملیات Fill برای پر کردن داخل شکل استفاده می‌شود.

پردازش تصویر با پایتون

جمع‌بندی‌

در این مطلب، برخی از مهم‌ترین، قدرتمند‌ترین و پرکاربردترین کتابخانه‌های پردازش تصویر در پایتون معرفی شده‌اند. تمامی ابزارها، کتابخانه‌ها و بسته‌های معرفی شده در این مطلب، به طور رایگان و برای استفاده عموم منتشر شده‌اند.

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

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۵۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
opensource.comopencvwisc
دانلود PDF مقاله
۶ دیدگاه برای «پردازش تصویر با پایتون – راهنمای کاربردی»

کد کتابخانه OpenCV-Python با خطا مواجه میشود. لطفا اصلاح بفرمایید

با سلام و احترام؛

ضمن تشکر از ارائه بازخوردتون، کدهای مربوطه، برای پایتون ۳ به‌روز‌رسانی و تست شد.

از همراهی شما با مجله فرادرس بسیار خوشنودیم.

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

سلام وقت بخیر. برای تبدیل عکس به sketch در پایتون باید از چه تابعی استفاده کرد

با سلام خدمت شما…از آموزش شما استفاده کردیم…یک سوال دارم خدمتتون..آیا میشه با پایتون ماکزیمم یا مینیمم نموداری که از تصاویر اینترنتی گرفتم را بدست آورد؟

import numpy as np
import cv2
from PIL import image
کد من اینها رو هم خطا میگیره! چه کنم؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *