对图像进行傅里叶变换,使高频分量位于中心
Fourier transformation on images such that high frequency components lie at the center
我熟悉在图像上应用高通滤波器的常规方法:
- 对图像应用 FFT
np.fft.fft2
。
- FFT 偏移
np.fft.fftshift
使低频居中。
- 在此频域图像上应用适当的高通滤波器
- FFT移位
np.fft.fftshift
和傅里叶逆变换np.fft.ifft2
得到对应的空间域图像
如果我的理解是正确的,当我们按照这些步骤操作时,低频位于傅立叶域图像的中心附近。
我们如何应用 np.fft.fft2
以使高频而不是低频居中?
附加信息:我在 Yin 等人的以下论文 'A Fourier Perspective on Model Robustness in Computer Vision' 中遇到了这种应用高通滤波器的特殊方法。阿尔。 https://arxiv.org/abs/1906.08988
我很好奇他们是如何实现的。
要使二维阵列的中心没有低频,您不需要应用 np.fft.fftshift
。事实上,这个函数交换了图像的一半,将低频(最初靠近边界)放在中心。
请注意,高频不会完全位于中心,而是位于十字形位置。下图显示了图像的未移位 FFT 计算。橙色部分是最高频率,最低频率位于角落。
如果你真的需要高频只在中心(而不是在十字形位置),那么你需要执行重新投影。但是,请注意,由于扩散,此操作可能会部分破坏高频。 AFAIK,没有办法(完全)阻止这种情况。
我熟悉在图像上应用高通滤波器的常规方法:
- 对图像应用 FFT
np.fft.fft2
。 - FFT 偏移
np.fft.fftshift
使低频居中。 - 在此频域图像上应用适当的高通滤波器
- FFT移位
np.fft.fftshift
和傅里叶逆变换np.fft.ifft2
得到对应的空间域图像
如果我的理解是正确的,当我们按照这些步骤操作时,低频位于傅立叶域图像的中心附近。
我们如何应用 np.fft.fft2
以使高频而不是低频居中?
附加信息:我在 Yin 等人的以下论文 'A Fourier Perspective on Model Robustness in Computer Vision' 中遇到了这种应用高通滤波器的特殊方法。阿尔。 https://arxiv.org/abs/1906.08988
我很好奇他们是如何实现的。
要使二维阵列的中心没有低频,您不需要应用 np.fft.fftshift
。事实上,这个函数交换了图像的一半,将低频(最初靠近边界)放在中心。
请注意,高频不会完全位于中心,而是位于十字形位置。下图显示了图像的未移位 FFT 计算。橙色部分是最高频率,最低频率位于角落。
如果你真的需要高频只在中心(而不是在十字形位置),那么你需要执行重新投影。但是,请注意,由于扩散,此操作可能会部分破坏高频。 AFAIK,没有办法(完全)阻止这种情况。