عملکرد فیلتر میانه - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

عملکرد فیلتر میانه

+1 امتیاز
سلام بر همگی.

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

متشکرم
سوال شده اسفند 2, 1392  بوسیله ی FIROZ (امتیاز 31)   2 3 3

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

از جمله فیلتر های غیر خطی هستش .Median filter برای حذف نویز مورد استفاده قرار می گیره آن هم از نوع فلفل نمکی (salt-and-pepper).دلیلش هم کامل مشخصه چون نویز فلفل نمکی یعنی مقدار ماکزیمم و منیمم و این مقدار هم هیچ وقت به عنوان median در مجموعه اعداد انتخاب نمی شن همانطور که اطلاع دارید برای محاسبه median در همسایگی 3 میشه 3*3 یعنی 9 خانه سپس این مقادیر را در یک آرایه با 9 عنصر ریخته و مرتب می کنیم و سپس مقدار موجود در خانه وسط آرایه را در خروجی قرار می دهیم .از جمله خاصیت های مهم این فیلتر بر خلاف فیلتر پایین گذر همچون mean یاbox filter حفظ لبه ها در تصویر می باشد و همچین از خواص دیگر حفظ موقعیت لبه ها بدون شیفت می باشد. به خاطر غیر خطی بودنش ما چیزی به نام کرنل دیگه نداریم بلکه از فاصله همسایگی برای تعیین مقدار پیکسل جاری استفاده می کنیم.

نحوه استفاده آن در OpenCV به صورت زیر هستش.

cv::medianBlur(image,result,5);

 

خروجی بعد از اعمال فیلتر Median:

پاسخ داده شده اسفند 7, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اسفند 7, 1392 بوسیله ی FIROZ
...