How do you apply a 3x3 low pass filter on an image that is noisy (salt and pepper) , and what is it supposed to do?

19 visualizzazioni (ultimi 30 giorni)
is it supposed to be like
inpict = imread('Q1_noisy_image (1).tif');
A = imgaussfilt(inpict,[3 3]);
imshow(A)

Risposte (1)

Image Analyst
Image Analyst il 2 Dic 2023
Basically the same as your other question where you used the median filter. So, borrowing from my answer there:
If inpict is a gray scale image, that would apply a median filter to ALL pixels in the image, not just the impulse/salt&pepper noise.
A gaussian filter is a low pass filter that smooths (blurs) noisy areas.
If you want a filter to operate on only salt and pepper noise, you have to
  1. First filter the whole image
  2. Get a mask of the salt and pepper noise, where values are either 0 or 255 or whatever values you want to use.
  3. Replace the original image with the filtered values but ONLY within the noise mask, not everywhere.
Something like
filteredImage = imgaussfilt(grayImage, [3,3]);
mask = (grayImage == 0) | (grayImage == 255);
grayImage(mask) = filteredImage(mask);
For a full demo, see my attached demos. For a color image, do it one color channel at a time.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by