امروزه پردازش تصویر (Image Processing) به یکی از بخشهای مهم بسیاری از سیستم های هوشمند تبدیل شده است چرا که منجر به تصمیمگیری. اگر به محیط پیرامون به دقت نگاه کنیم کاربردهای زیادی از پردازش تصویر در حوزه های فنی، صنعتی، شهری و پزشکی مشاهده خواهیم کرد. به عنوان مثال دوربینهای پلاک خوان، سیستمهای کنترل ترافیک، سیستم های تشخیص چهره تلفن همراه، دستگاههای حضور غیاب، سیستم های کنترل کیفیت خطوط تولید و …
در ادامهی این مقاله به بررسی اهداف و برخی از مراحل پردازش تصویر میپردازیم تا یک دید گسترده از آن بدست آورید
اهدف پردازش تصویر
در فرایند پردازش تصویر یک تصویر به عنوان ورودی دریافت میشود و با انجام یک سری عملیات بر روی آن یک تصویر یا یک مجموعه از از دادههای مربوط به تصویر به عنوان خروجی تولید میشود. این خروجی های می تواند برای موارد زیر استفاده شوند.
- تجسم یا Visualization: مشاهده اجسامی که قابل دیدن نیستند.
- ترمیم و واضح کردن یا Image sharpening and restoration: برای خلق تصاویر بهتر.
- بازیابی تصاویر یا Image retrieval: جستجوی تصاویر مورد علاقه.
- اندازه گیری الگوی Measurement of pattern: اندازه گیره اشیاء درون یک تصویر.
- تشخیص تصویر Image Recognition: اشیاء را در یک تصویر مشخص و متمایز می کند یا به عبارت دیگر کشف و تشخیص یک ویژگی خاص در تصویر.
مراحل پردازش تصویر
- دریافت تصویر
- بهبود تصویر قبل از پردازش
- ترمیم تصویر
- فشرده سازی
- پردازش مورفولوژیکی
- بخش بندی
- تشخیص اشیاء
- استخراج ویژگیها
- دسته بندی
- خروجی نهایی
مورفولوژی ریاضی در پردازش تصویر
برای انجام پردازش تصویر باید یکسری عملیات ریاضی روی کوچکترین اجزای تصویر که پیکسل (Pixel) نام دارد اعمال کرد. مورفولوژی ریاضی (Mathematical Morphology) به ما این امکان را می دهد که طیف وسیعی از عملگرها را در پردازش تصویر به کار ببریم. تئوری این مورفولوژیها جزو مفاهیم سادهی ریاضی هستند. این عملگرها برای تجزیه و تحلیل تصاویر باینری بسیار مفید هستند. کاربردهای رایج این عملگرها شامل تشخیص لبه، حذف نویز، تقویت تصویر و تقسیم بندی تصویر هستند.
دو عملیات اساسی در مورفولوژی ریاضی سایش (Erosion) و گسترش (Dilation) است. از نام این عملگرها مشخص هست که عملگر سایش باعث کوچک شدن ناحیه مورد نظر میشود و عملگر گسترش، ناحیه مورد نظر را بزرگتر میکند. هر دو این اپراتورها دو مورد را به عنوان ورودی می گیرند: اول تصویری که قرار است عملیات روی آن انجام گیرد و دوم یک عنصر ساختاری (Structuring Element) که این عنصر ساختاری با نام Kernel نیز شناخته میشود.
برای یک تصویر باینری، پیکسل های سفید به طور معمول جهت نشان دادن مناطق پیش زمینه (Foreground) استفاده میشوند، در حالی که پیکسلهای سیاه، نشان دهنده پس زمینه (Background) است. توجه داشته باشید که در برخی از پیاده سازی ها این قرارداد معکوس شده است. اگر Foreground سفید باشد و Background سیاه باشد با اعمال Erosion به تصویر، نواحی سفید بزرگتر میشوند.
برای تصاویری که در مقیاس خاکستری (Grayscale) هستند قضیه کمی متفاوت میشود. در این حالت فقط دو رنگ (سفید و سیاه) نداریم. بلکه طیف رنگی گسترده تری حاوی 256 رنگ بین سفید و سیاه داریم. بنابراین تصویر خاکستری را می توان همانند یک سطح در فضای سه بعدی در نظر گرفت که ارتفاع سطح در نقاط مختلف بین 0 تا 255 می تواند متفاوت باشد.
عنصر ساختاری (Kernel)
یکی از اجزای اصلی در پردازش تصویر، عنصر ساختاری است. عنصر ساختاری (Kernel) مجموعهای از مختصات نقطهای است (گرچه اغلب به عنوان یک تصویر باینری نشان داده میشود) ولی با مختصات تصویر ورودی (تصویری که می خواهیم عملگرها را روی آن اعمال کنیم) متفاوت است. Kernel معمولاً بسیار کوچکتر از تصویر ورودی است و منشأ مختصات آن غالباً در یک گوشه نیست ، به طوری که برخی از عناصر مختصات دارای مقادیر منفی خواهند بود. توجه داشته باشید که در بسیاری از اپراتورهای مورفولوژیکی، کرنل به شکل خاصی فرض شده است (به عنوان مثال یک مربع 3 در 3).
مورفولوژی باینری یا دودویی می تواند مورد خاصی از مورفولوژی خاکستری باشد که در آن، تصویر ورودی فقط دارای دو سطح خاکستری با مقادیر 0 و 1 است.
تقریباً همه اپراتورهای مورفولوژی ریاضی را می توان از ترکیب اپراتور سایش (erosion) و گسترش (Dilation) و یا ترکیب این دو با اپراتورهایی مثل اجتماع (union) و تقاطع (Intersection) بکار برد. برخی از مهمترین آنها Opening، Closing و Skeletonization است.