周期性噪声去除滤波器
在本教程中,你将学到:
- 如何在傅里叶域中去除周期性噪声
注: 以下说明基于教材 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 上观看这一滤波思路的简短视频演示。
