حذف نویز گاوسی با استفاده از ابزارهای متلب
موسسه پایاپروژه به عنوان متصدی انجام پروژه های پردازش تصویر با متلب وظیفه ی خود می داند که در راستای آموزش نرم افزار متلب گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی متلب مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
حذف نویز گاوسی از طریق برنامه متلب
نویز گاوسی و یا Gaussian noise، نویزی است که منحنی آن مشابه توزیع گاوسی باشد. تابعی که برای حذف این نویز از آن استفاده میشود، تابع wiener2 نام دارد که به صورت کلی برای حذف نویزهای با توان ثابت و به اصطلاح جمع شونده بهترین عملکرد را در بین موارد دیگر دارد. برای دریافت نکات دیگر و آموزش متلب به صورت حرفه ای با پایا پروژه همراه باشید.
تابع wiener2 چگونه کار میکند؟
از این تابع به عنوان یکی از فیلترهای انطباقی برای حذف نویز نام برده میشود و برخلاف فیلترهای خطی مانند Averaging و Median سازگاری بیشتری برای حذف نویز و بدون آسیب به بافت تصویر دارد. شیوه کار نیز اینگونه است که وقتی مقدار واریانس تصویر اصلی زیاد باشد، این فیلتر، نرمی(smoothing) کمتری را اعمال میکند و برعکس، زمانیکه واریانس زیاد باشد، میزان نرمی اعمال شده نیز بیشتر است.
این روش مزایای بهتری نسبت به اعمال فیلترهای خطی از خود نشان میدهد و در واقع به صورت کلی، فیلترهای تطبیقی در انتخاب مناطقی با فرکانس بالا و لبه ها، عملکرد بهتری نسبت به فیلترهای خطی دارد و با انجام محاسبات اولیه، بهترین مقادیر فیلتر را بر روی تصویر اعمال میکند. به دلیل همین محاسبات اضافی، اعمال فیلترهای تطبیقی و حذف نویز گاوسی به مدت زمان بیشتری نیاز دارد.
حذف نویز گاوسی از طریق فیلترهای تطبیقی با مثال
حذف نویز گاوسی از طریق مثال در زیر ارائه شده است.
- مرحله اول: وارد کردن عکس اصلی
RGB = imread(‘saturn.png’);
title(‘Clear Image’);

عکس اصلی بدون نویز
- مرحله دوم: تبدیل تصویر اصلی به grayscale
این کار از طریق تابع im2gray انجام میشود.
I = im2gray(RGB);
- مرحله سوم: اضافه کردن نویز گاوسی به تصویر
J = imnoise(I,’gaussian’,0,0.025);
- مرحله چهارم: نمایش تصویر نویزی
به این دلیل که تصویر بزرگ است، فقط محدوده خاصی از آن نمایش داده میشود.
imshow(J(600:1000,1:600));title(‘Portion of the Image with Added Gaussian Noise’);

نمایش محدوده خاصی از یک تصویر پس از اعمال نویز و تبدیل به grayscale
- مرحله پنجم: حذف نویز با استفاده از تابع wiener2
K = wiener2(J,[5 5]);
- مرحله ششم: نمایش تصویر اصلاح شده
igureimshow(K(600:1000,1:600));title(‘Portion of the Image with Noise Removed by Wiener Filter’);
نمایش محدوده خاصی از یک تصویر پس از حذف نویز گاوسی با استفاده از wiener2
مرحله هفتم: نتیجه گیری
همانطور که در دو تصویر مشاهده میکنید، عملکرد این فیلتر در حذف نویز گاوسی و یا نویز سفید بسیار عالی است و به بافت تصویر نیز آسیب زیادی وارد نشده است.
برای سفارش پروژه متلب با ما ارتباط بگیرید و یا اینکه، برای انجام پروژه متلب خود و یادگیری مطالب بیشتر، از ما به عنوان منبع آموزشی استفاده کنید.
منابع:
