فیلتر غیر خطی
فیلتر غیر خطی
مقدمهای بر پردازش تصویر و فیلترهای مکانی
در پردازش تصویر، فیلترهای مکانی ابزارهایی هستند که برای اصلاح یا استخراج اطلاعات از تصاویر دیجیتال در حوزه مکان (Spatial Domain) استفاده میشوند. این فیلترها به دو دسته اصلی تقسیم میشوند:
- فیلترهای خطی: مانند فیلتر گاوسی، میانگینگیر، لاپلاسین و غیره که از عملیات کانولوشن یا کرولیشن برای اعمال تغییرات استفاده میکنند. این فیلترها در پستهای قبلی به تفصیل بررسی شدهاند.
- فیلترهای غیرخطی: مانند فیلترهای ترتیبی (Order Statistics Filters) و فیلتر میانه (Median Filter) که بر اساس ترتیب یا ویژگیهای آماری پیکسلها در یک ناحیه خاص عمل میکنند.
در این مقاله، تمرکز ما بر فیلترهای غیرخطی است. این فیلترها به دلیل توانایی در مدیریت نویزهای خاص (مانند نویز نمک و فلفل) و حفظ لبههای تصویر، در پردازش تصویر کاربرد گستردهای دارند.
فیلتر غیر خطی چیستند؟
فیلترهای غیرخطی برخلاف فیلترهای خطی، از عملیات کانولوشن یا کرولیشن برای تغییر پیکسلهای تصویر استفاده نمیکنند. در عوض، این فیلترها با دستکاری ترتیب یا ویژگیهای آماری پیکسلها در یک ناحیه مشخص (مانند یک پنجره n×n) عمل میکنند. این روش باعث میشود که فیلترهای غیرخطی در حذف نویزهای غیرعادی یا حفظ جزئیات تصویر (مانند لبهها) عملکرد بهتری نسبت به فیلترهای خطی داشته باشند.
ویژگیهای کلیدی فیلترهای غیرخطی
- عدم استفاده از ضرب ماتریسی: برخلاف فیلترهای خطی که کرنل را در تصویر ضرب میکنند، فیلترهای غیرخطی بر اساس مرتبسازی یا انتخاب پیکسلها عمل میکنند.
- حفظ لبهها: این فیلترها معمولاً در حذف نویز بدون تار کردن لبههای تصویر بهتر عمل میکنند.
- کاربرد در نویزهای خاص: بهویژه برای نویزهایی مانند نویز نمک و فلفل (Salt-and-Pepper Noise) بسیار مؤثر هستند.
انواع فیلترهای غیرخطی
دو نوع رایج فیلترهای غیرخطی که در پردازش تصویر استفاده میشوند عبارتاند از:
- فیلترهای ترتیبی (Order Statistics Filters): این فیلترها پیکسلهای یک ناحیه (مانند پنجره 3×3) را مرتب کرده و پیکسل kkk-اُم را بهعنوان خروجی انتخاب میکنند. مثالهای معروف:
- فیلتر حداقل (Min Filter): کوچکترین مقدار پیکسل در ناحیه.
- فیلتر حداکثر (Max Filter): بزرگترین مقدار پیکسل در ناحیه.
- فیلتر میانه (Median Filter): مقدار میانه پیکسلها.
- فیلتر میانه (Median Filter): این فیلتر مقدار میانه شدت روشنایی پیکسلها را در ناحیه انتخاب میکند و بهویژه برای حذف نویز نمک و فلفل مناسب است.
مفهوم میانه
میانه (Median) مقداری است که در یک مجموعه مرتبشده، دقیقاً در وسط قرار میگیرد. به عنوان مثال، در مجموعه {1,3,5,7,9}، میانه برابر با 5 است. در پردازش تصویر، فیلتر میانه شدت روشنایی پیکسلها را در یک ناحیه مرتب کرده و مقدار میانه را بهعنوان شدت پیکسل مرکزی انتخاب میکند.

پیادهسازی در متلب
متلب ابزارهای قدرتمندی برای اعمال فیلترهای غیرخطی ارائه میدهد. دو تابع پرکاربرد برای این منظور عبارتاند از:
- medfilt2: برای اعمال فیلتر میانه، که مقدار میانه پیکسلها را انتخاب میکند.
- ordfilt2: برای اعمال فیلترهای ترتیبی، که k-اُمین مقدار مرتبشده پیکسلها را در یک ناحیه انتخاب میکند.
A = imread('snowflakes.png');
figure
subplot 131 ;imshow(A);title ('orginal image')
B = ordfilt2(A,25,true(5));
subplot 132 ;imshow(B);title ('ordfilter')
C = medfilt2(A);
subplot 133 ;imshow(C);title ('Medfilter')
فیلتر میانه (medfilt2): این فیلتر مقدار میانه شدت روشنایی پیکسلها را در یک ناحیه (معمولاً 3×3) انتخاب میکند. این روش برای حذف نویز نمک و فلفل بسیار مؤثر است، زیرا پیکسلهای پرت (مانند پیکسلهای خیلی روشن یا خیلی تیره) را نادیده میگیرد.
فیلتر ترتیبی (ordfilt2): در این مثال، بیستوپنجمین مقدار (آخرین مقدار در پنجره 5×5) انتخاب شده است، که معادل فیلتر حداکثر است. این فیلتر باعث روشنتر شدن تصویر میشود، زیرا مقادیر بزرگتر (روشنتر) را انتخاب میکند.

کاربردهای فیلترهای غیرخطی
- حذف نویز نمک و فلفل: فیلتر میانه به دلیل توانایی در حذف پیکسلهای پرت، برای این نوع نویز بسیار مؤثر است.
- حفظ لبهها: برخلاف فیلترهای خطی مانند فیلتر گاوسی که لبهها را تار میکنند، فیلترهای غیرخطی مانند فیلتر میانه لبهها را بهتر حفظ میکنند.
- پردازش تصاویر پزشکی: در تحلیل تصاویر MRI یا CT برای حذف نویز بدون از دست دادن جزئیات مهم.
- بهبود کیفیت تصویر: فیلترهای ترتیبی مانند فیلتر حداقل یا حداکثر برای حذف نویزهای خاص یا تقویت ویژگیهای تصویر استفاده میشوند.
تفاوت فیلترهای خطی و غیرخطی
| ویژگی | فیلترهای خطی | فیلترهای غیرخطی |
|---|---|---|
| روش محاسبه | بر اساس کانولوشن یا کرولیشن | بر اساس مرتبسازی یا آمار پیکسلها |
| حفظ لبهها | ممکن است لبهها را تار کند | لبهها را بهتر حفظ میکند |
| کاربرد در نویز | مناسب برای نویز گاوسی | مناسب برای نویز نمک و فلفل |
| پیچیدگی محاسباتی | معمولاً سادهتر | ممکن است پیچیدهتر باشد (مرتبسازی) |
نکات پیشرفته
- اندازه پنجره: انتخاب اندازه پنجره (مانند 3×3 یا 5×5) تأثیر زیادی بر عملکرد فیلتر دارد. پنجرههای بزرگتر نویز بیشتری حذف میکنند، اما ممکن است جزئیات تصویر را کاهش دهند.
- فیلترهای تطبیقی: برخی فیلترهای غیرخطی تطبیقی (مانند فیلتر میانه تطبیقی) میتوانند با توجه به ویژگیهای محلی تصویر، عملکرد بهتری داشته باشند.
- کاربرد در یادگیری عمیق: فیلترهای غیرخطی مانند فیلتر حداکثر در لایههای Pooling شبکههای کانولوشنی (CNN) استفاده میشوند.
نتیجهگیری
فیلترهای غیرخطی ابزارهای قدرتمندی در پردازش تصویر هستند که بهویژه برای حذف نویزهای خاص مانند نویز نمک و فلفل و حفظ لبههای تصویر مناسباند. توابعی مانند ordfilt2 و medfilt2 در متلب امکان پیادهسازی آسان این فیلترها را فراهم میکنند. با درک تفاوتهای فیلترهای خطی و غیرخطی و انتخاب مناسب پارامترها (مانند اندازه پنجره و نوع فیلتر)، میتوان به نتایج بهتری در پردازش تصویر دست یافت. در آموزشهای بعدی، به بررسی فیلترهای پیشرفتهتر و کاربردهای آنها در حوزههای مختلف مانند یادگیری عمیق خواهیم پرداخت.

دیدگاه (2)
فردینی
تشکر
محد رضا
سایتتون مطالبی جالبی داره ممنون از زحماتتون