【图像处理】 均值滤波、中值滤波和高斯滤波

均值滤波

均值滤波是一种线性滤波,会导致图像模糊。

均值滤波器卷积核:卷积核中心点对应原图上的位置的值,变为卷积核覆盖的原图上的所有值的平均值

c++均值滤波函数:

blur(src, dst, ksize);
  • ksize:滤波器卷积核的尺寸,如:Size(3, 3)

python均值滤波函数:

dst = cv2.blur(src, ksize)
  • ksize:滤波器卷积核的尺寸,必须为元组

中值滤波

中值滤波器是一种非线性滤波器,常用于消除图像中的椒盐噪声。椒盐噪声是指两种噪声,一种是盐噪声=白色(255),另一种是胡椒噪声=黑色(0)。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。对于彩色图像,则表现为在单个像素BGR三个通道随机出现的255与0

中值滤波器卷积核:卷积核中心点对应原图上的位置的值,变为卷积核覆盖的原图上所有值的中位数

c++中值滤波函数:

medianBlur(src, dst, ksize);
  • src:Mat,输入图像
  • dst:Mat,输出图像
  • ksize:int型奇数,滤波器卷积核尺寸

python中值滤波函数:

dst = cv2.medianBlur(src, kszie)
  • ksize:滤波器卷积核的尺寸,必须为整型奇数

高斯滤波

对图像进行平滑的同时,同时能够更多的保留图像的总体灰度分布特征

二维高斯分布:
在这里插入图片描述

高斯滤波器卷积核:卷积核中心点对应原图上位置的值,变为卷积核和覆盖的原图上的值对应位置一一相乘后的和

卷积核的值:以3x3的卷积核为例,

(-1, -1)(0,-1)(1, -1)
(-1, 0)(0,0)(1,0)
(-1, 1)(0, 1)(1, 1)

假设上面的表格是3x3的卷积核,卷积核每个位置的值是表格中的值代入二维高斯函数后得到的值

高斯滤波模板中最重要的参数就是高斯分布的标准差σ。它代表着数据的离散程度,如果σ较小,那么生成的模板中心系数越大,而周围的系数越小,这样对图像的平滑效果就不是很明显;相反,σ较大时,则生成的模板的各个系数相差就不是很大,比较类似于均值模板,对图像的平滑效果就比较明显

c++高斯滤波函数:

GaussianBlur(src, dst, ksize, sigmaX, sigmaY, borderType=BORDER_DEFAULT);
  • ksize:滤波器卷积核的尺寸,如:Size(3, 3)
  • sigmaX:double型,表示高斯核函数在X方向的的标准偏差
  • sigmaY:double型,示高斯核函数在Y方向的的标准偏差。若sigmaY为零,就将它设为sigmaX

python高斯滤波函数:

dst = cv2.GaussianBlur(src, kszie, sigmaX, sigmaY)
  • ksize:滤波器卷积核的尺寸,必须为元组

结语

如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
如果我的文章对您有帮助,转载请注明出处。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐