使用傅里叶变换从图像中去除周期性噪声

Removing periodic noise from an image using the Fourier Transform

我正在对特定图像执行 2D FFT,我得到了它的光谱分量。现在这个图像已经与另一个图像叠加以产生周期性噪声。

原图和周期噪声版本如下图:

原图

周期性噪声图像

为了过滤掉这一点,我使用了手动框来屏蔽幅度谱中相对于其他分量相当大的分量,如下所示。

完成后,我执行逆 FFT,但我没有取回原始图像。

有人知道我做错了什么吗?

这是屏蔽值的代码,然后继续对屏蔽的光谱图像执行逆二维 FFT:

pat1 = imread('Pattern1.png');

spec_orig = fft2(double(pat1));     
spec_orig2 = abs(spec_orig); 
spec_img = fftshift(spec_orig2);

for j = 115:125
    for n = 96:106
        spec_img(n,j) = 0; 
    end
    for n = 216:226
        spec_img(n,j) = 0; 
    end
    for n = 274:284
        spec_img(n,j) = 0; 
    end
    for n = 298:308
        spec_img(n,j) = 0; 
    end
    for n = 12:22
        spec_img(n,j) = 0; 
    end
    for n = 37:47
        spec_img(n,j) = 0; 
    end
end

%Getting Back the Image for Pattern1
figure;subplot(2,1,1);
spec_img = log(1 + spec_img);
imshow(spec_img,[]); 

subplot(2,1,2);
ptnfx = ifft2(spec_img);
imshow(ptnfx);

在频域中进行滤波是一项棘手的工作。您的代码有一些错误会阻止您重建原始图像:

  1. 您正在仅对幅度分量应用过滤。您必须在 原始图像频谱 上执行此操作,而不仅仅是幅度分量。该阶段对于正确重建至关重要。顺便说一句,为了创造一个信号处理术语,您正在实施的是 notch filter 或带阻滤波器,它会去除某些 select 频率。

  2. 您通过 fftshift 使光谱居中,但在过滤后您 忘记撤消移位 。您必须对生成的过滤图像调用 ifftshift 以撤消居中。

  3. 您正在寻找 对数变换 图像的逆 FFT。请记住,对频谱执行对数变换 仅用于显示 目的。你不要在过滤或求逆时使用它。这样做会给您带来意想不到的后果,因为大部分频谱已因非线性操作而发生变化。您必须在原始图像光谱本身上执行此操作。

  4. 一个小注意事项,但请确保在执行逆 FFT 后过滤结果后调用 real。很可能存在一些由于计算浮点错误导致的残余虚部,因此调用 real 只会提取信号的实部。

经过这些更正,这就是我的代码。我已经直接从 Whosebug 读取了您的图像以使其可重现:

pat1 = imread('http://i.stack.imgur.com/oIumJ.png');

%// Change
spec_orig = fft2(double(pat1)); 
spec_img = fftshift(spec_orig);

for j = 115:125
    for n = 96:106
        spec_img(n,j) = 0; 
    end
    for n = 216:226
        spec_img(n,j) = 0; 
    end
    for n = 274:284
        spec_img(n,j) = 0; 
    end
    for n = 298:308
        spec_img(n,j) = 0; 
    end
    for n = 12:22
        spec_img(n,j) = 0; 
    end
    for n = 37:47
        spec_img(n,j) = 0; 
    end
end

%// Change
ptnfx = real(ifft2(ifftshift(spec_img)));
imshow(ptnfx,[]);

我得到这张图片:

我将添加对原始图像的相当不错的重建。您仍然会看到一些条纹,这在很大程度上取决于陷波滤波器的形状和尺寸。或许将尺寸做得更大甚至更大,将陷波滤波器的形状做成圆形而不是方形。这倾向于保留更多原始图像,因为正方形角引入的硬边缘会产生意想不到的振铃效应。