Remove periodic noise pattern from image

Hi,
I have a set of images taken from a video which all have a regular noise pattern which I wish to remove.
You can see this pattern clearly in pattern.jpg which I attached. This is a small segment cropped from the background of image_pattern.jpg. I used imadjust on it to make the pattern visible. If you look closely at image_pattern you can see the pattern I wish to remove without losing details/sharpness in the image.
I've also attached the log of the magnitude of the fft as it seems this may be helpful in solving this problem. I obtained this with the following code:
% Compute the 2D fft. (I is image_pattern)
frequencyImage = fftshift(fft2(I));
% Take log magnitude so we can see it better in the display.
amplitudeImage = log(abs(frequencyImage));
minValue = min(min(amplitudeImage))
maxValue = max(max(amplitudeImage))
figure(3), imshow(amplitudeImage, []);
Please let me know if there are any easy solutions to this problem, thanks.

 Respuesta aceptada

Image Analyst
Image Analyst el 10 de Jul. de 2019

2 votos

I have a demo for that, attached.
00_Screenshot.png

5 comentarios

KAAN AYKUT  KABAKÇI
KAAN AYKUT KABAKÇI el 9 de Mayo de 2020
What is the name of this filter? Low pass, band pass or high pass?
Image Analyst
Image Analyst el 9 de Mayo de 2020
That would be a band pass. For a low pass, the central portion would be erased. For a high pass the outer portion of the square would be erased. Since I only erased some internal areas, it's passing stuff in the "band" outside those erase areas.
Ali Gouhar
Ali Gouhar el 7 de Nov. de 2020
How i can remove remove these diagonal lines from the image?
Ali, did you try to apply my demo to your image? If so, you forgot to attach your code.
If it's not exact enough, I'd suggest you try a modified median filter where you create a mask where the gray lines gray values are, then replace those with the median
mask = grayImage == grayLineGrayLevel
subplot(2, 2, 1);
imshow(mask);
filteredImage = medfilt2(grayImage, [7, 7]);
subplot(2, 2, 2);
imshow(filteredImage);
grayImage(mask) = filteredImage(mask);
subplot(2, 2, 3);
imshow(grayImage);
If it's still not right, start your own question.
Dominic Rockas
Dominic Rockas el 9 de Mzo. de 2021
is the fft_filter.m the same as a notch filter?

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 10 de Jul. de 2019

Comentada:

el 9 de Mzo. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by