# Remove Checkered Noise (Pattern) from an Image

I'm trying to remove what looks like a checkered noise pattern that has been added to an image. Comparing the 2D FFTs

The one on the left is the original, while the middle one is the corrupted one. I've been trying to remove the added bright spots on the diagonals. The far right FFT is my attempt at isolating the diagonals, which I did with an X shaped filter.

[f1,f2] = freqspace(300,'meshgrid');
Hd = zeros(300);
d = f1 + f2 == 2 * f1;
f = f1 + f2 == 0;
d = f | d;
d = logical(d);
Hd(d) = 0.75;

h = fsamp2(Hd);


However I seem to be unable to isolate the features. Are there any known algorithms for such a process? Isolating directions or points on an FFT. The MSE of the middle image is 0.0084 and the lowest I have gotten it to is 0.0031. With a combination of a low pass filter and a median filter. However the image was quite blurry and I don't think it would be possible to get it very close to the original after that much information loss. This is a HW question, so please only give hints. Here are the two images, noisy and original in that order

• I was able to reach lower than 0.0010 u/pixel^2. This was done by writing filters that covered the bright spots, while displacing the least about of other pixels. And with each iteration to imguided adjust to a flawed version, but one that removed more noise. And to finally sharpen it to recover some of the features. – Taka Mar 19 '15 at 2:46