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.

 Accepted Answer

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

5 Comments

What is the name of this filter? Low pass, band pass or high pass?
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.
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.
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!