Remove periodic noise pattern from image

115 views (last 30 days)
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.

Accepted Answer

Image Analyst
Image Analyst on 10 Jul 2019
I have a demo for that, attached.
00_Screenshot.png
  5 Comments
Image Analyst
Image Analyst on 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.
Dominic Rockas
Dominic Rockas on 9 Mar 2021
is the fft_filter.m the same as a notch filter?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!