
Remove periodic noise pattern from image
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Robert Mc Carthy
el 10 de Jul. de 2019
Comentada: Dominic Rockas
el 9 de Mzo. de 2021
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.
0 comentarios
Respuesta aceptada
Image Analyst
el 10 de Jul. de 2019
I have a demo for that, attached.

5 comentarios
Image Analyst
el 8 de Nov. de 2020
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.
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
