
Remove periodic noise pattern from image
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Robert Mc Carthy
le 10 Juil 2019
Commenté : Dominic Rockas
le 9 Mar 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 commentaires
Réponse acceptée
Image Analyst
le 10 Juil 2019
I have a demo for that, attached.

5 commentaires
Image Analyst
le 8 Nov 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.
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
