本文主要讲述的是如何去除图像中周期性的线性噪声,尝试过的方法从空域的开关中值滤波到频域的陷波滤波等,在此做个总结,其中陷波滤波的尝试失败,效果并不理想,而开关中止滤波的效果很好。
![]() |
---|
图1:带周期性线条噪声的图片 |
1.实验过程
首先我是想用openCV自带的cv2.medianBlur()
来去除噪声,但是在测试过几组kernel过后发现:随着线条的消除,图片也会越来越模糊,小的kernel并不能很好的消除噪声,而大的kernel会让图片失真。然后我并没有很聪明的想到我最终的解决方案:开关中值滤波,而是转变了另一个方向:陷波滤波。
2.陷波滤波
先来说说陷波滤波吧。
陷波滤波是一种频域滤波,频域滤波的过程是先对图像进行正交变换(常用的是傅里叶变换),再对正交变换得到的正交变换域系数阵列进行滤波处理,然后逆变换到空域,得到处理结果图像。
傅里叶变换是把图像从空域变换到频域,图像的背景区域和缓慢变化部分对应频谱中的低频部分,而边
缘、细节、跳跃部分以及噪声则对应高频部分。线状和网格状噪声具有准周期性,噪声频谱与图像的频谱是可分离的,因此对于带有此类噪声的图像,可以通过频域滤波的方法来去除噪声。
理想陷波滤波器的传递函数:
H(u,v)={
0D1(u,v)<=D00D2(u,v)<=D01elseH(u,v)= \begin {cases} 0&D_1(u,v)<=D_0 \\0&D_2(u,v)<=D_0\\1&else \end {cases}H(u,v)=⎩⎪⎨⎪⎧001D1(u,v)<=D0D