Reputation: 370
I have an image where I add a Gaussian noise. I need to use the ideal low pass filter to remove the noise but I cannot really see any examples on the official Matlab documentation. There examples but not with images and I cannot really grasp the concept behind this filter. So could somebody explain how the ideal low pass filter can be used to remove noise?
image = imread('eight.tif');
imshow(image );
noisyImage = imnoise(image,'gaussian',0.02);
imshow(noisyImage);
Upvotes: 0
Views: 208
Reputation: 1855
If you know the standard deviation of the noise, It's good to use a Gaussian filter with that specific standard deviation. Although in most of the cases, it's good to use Bilateral filter (imbilatfilt
) which is a gaussian filter with some other features that preserves the edges.
If you don't know what your noise is, It's best to use Wiener filter ([J,noise_out] = wiener2(I,[m n])
). This filter observes the frequency behavior of the image and looks for a special pattern which is statistically consistent with noise. In other word, it estimate the noise of image and filter that specific noise for you. noise_out
is the estimates of the additive noise power and m,n are the sizes of the filter's kernel (which I suggest something like 5*5 or 7*7).
Of course there are some other filtering methods including handmade ones, but those need more effort and lots of trial and error.
Upvotes: 3