Skip to content

周期性噪声去除滤波器

在本教程中,你将学到:

  • 如何在傅里叶域中去除周期性噪声

注: 以下说明基于教材 Gonzalez1987。本页所用图像为真实图像。

周期性噪声会在傅里叶域中产生尖峰,通常可以通过肉眼分析检测出来。

如何在傅里叶域中去除周期性噪声?

Section titled “如何在傅里叶域中去除周期性噪声?”

周期性噪声可以通过频域滤波显著降低。本页使用一个具有合适半径的陷波抑制(notch reject)滤波器,在傅里叶域中完全包围噪声尖峰。陷波滤波器会抑制以某个中心频率为中心、在预定邻域内的频率成分。陷波滤波器的数量是任意的,陷波区域的形状也可以是任意的(例如矩形或圆形)。本页使用了三个圆形的陷波抑制滤波器。图像的功率谱密度用于对噪声尖峰进行可视化检测。

你可以在 OpenCV 源码库的 samples/cpp/tutorial_code/ImgProc/periodic_noise_removing_filter/periodic_noise_removing_filter.cpp 中找到源代码。

通过频域滤波来降低周期性噪声,包含功率谱密度计算(用于噪声尖峰的可视化检测)、陷波抑制滤波器合成以及频率滤波三个步骤:

calcPSD() 函数用于计算图像的功率谱密度:

synthesizeFilterH() 函数根据中心频率和半径,构造一个理想圆形陷波抑制滤波器的传递函数:

filter2DFreq() 函数在频域中对图像进行滤波。函数 fftshift() 和 filter2DFreq() 取自教程”离焦去模糊滤波器(Out-of-focus Deblur Filter)”。

下图展示了一幅被多种频率周期性噪声严重污染的图像。

在下图所示的功率谱密度中,噪声成分很容易被看作亮点(尖峰)。

下图展示了一个具有合适半径的陷波抑制滤波器,可以完全包围噪声尖峰。

用该陷波抑制滤波器处理图像后的结果如下所示。

改善十分明显。该图像中可见的周期性噪声比原始图像显著减少。

你也可以在 YouTube 上观看这一滤波思路的简短视频演示。

period_input.jpg period_psd.jpg period_filter.jpg period_output.jpg