هموار سازی تصویر با OpenCV و پایتون

هموار سازی (Smoothing) یا صاف کردن تصویر یا گاهی اوقات مات کردن (تار کردن یا Bluring) نیز گفته می شود، تکنیکی است که برای کاهش نویز (Noise) تصویرها استفاده می شود. هموار سازی تصویر توسط اعمال فیلترهای خطی (Linear Filters) ها به تصویر انجام می شود. در مطلب پیشین فیلترهای خطی Guassian Filter، Median Filter و Bilateral Filter را توضیح داده ایم که برای مات کردن (تار کردن) تصویر استفاده می شوند. همچنین همانطور که می دانید هر کدام از این فیلترها، دارای یک کرنل (ماتریس کانولوشن) خاص خودشان هستند. اگر مفاهیم را فراموش کرده اید، لطفا لینک های زیر را بخوانید.

فیلتر تصویر و مفهوم کرنل در پردازش تصویر

پردازش تصویر – مقدمه ای بر فیلترها

مات کردن تصویر با OpenCV و پایتون

فیلتر Median Filter (متد ()medianBlur در OpenCV) برای بر طرف سازی نویز سفید و سیاه کاربرد دارد، در حالی که فیلتر گوسی Guassian Filter (متد ()guassianBlur در OpenCV) برای تشخیص لبه ها مورد استفاده قرار می گیرد. بنابراین فیلتر دوطرفه Bilateral Filter (متد ()bilateralFilter در OpenCV) برای هموار سازی تصویر با حفط و نگهداری لبه ها، مورد استفاده قرار می گیرد.

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