OpenCV 提供了多种图像滤波函数,用于图像平滑、去噪和模糊处理。以下是主要滤波函数的详细说明:
1. Cv2.Blur - 均值滤波(归一化框滤波)
功能:使用归一化框滤波器对图像进行模糊处理,每个像素值被替换为其邻域的平均值。
参数说明:
-
src
:输入图像 -
dst
:输出图像 -
ksize
:模糊核大小(如 new Size(5,5)) -
anchor
:锚点位置(默认中心点) -
borderType
:边界填充方式
特点:
-
计算简单快速
-
能有效去除高斯噪声
-
会导致边缘模糊
2. Cv2.MedianBlur - 中值滤波
功能:用邻域像素的中值替换中心像素值。
参数说明:
-
ksize
:核大小(必须是大于1的奇数,如3,5,7...)
特点:
-
对椒盐噪声特别有效
-
能较好保留边缘
-
计算量比均值滤波大
3. Cv2.GaussianBlur - 高斯滤波
功能:使用高斯核进行加权平均模糊。
参数说明:
-
sigmaX
:X方向高斯核标准差 -
sigmaY
:Y方向高斯核标准差(0表示与sigmaX相同)
特点:
-
符合人眼视觉特性
-
对高斯噪声有良好效果
-
边缘保留优于均值滤波
4. Cv2.BilateralFilter - 双边滤波
功能:结合空间距离和像素值相似性的非线性滤波。
参数说明:
-
d
:像素邻域直径 -
sigmaColor
:颜色空间标准差 -
sigmaSpace
:坐标空间标准差
特点:
-
能有效去噪同时保留边缘
-
计算复杂度高
-
适合需要保持边缘的降噪场景