图像处理入门系列之图像滤波

图像的滤波操作按不同的分类方法可分为频率域和空间域滤波、线型滤波和非线型滤波、平滑滤波和锐化滤波、高通滤波和低通滤波。总体来说,图像滤波的作用可分为两类,一类是去除图像因外界干扰而产生的噪声;另一类是增强图像中的边缘和纹理细节。滤波操作可以认为是卷积运算,是加权求和的过程,使图像区域中的每个像素分别与滤波器的每个元素对应相乘,所有乘积之和作为区域中心像素的新值。其中的最为关键的部分是一个二维矩阵,该矩阵是一个权矩阵,我们称之为滤波器,有时也称为卷积核。通过滤波器在图像矩阵中的移动,根据滤波器中的元素对滤波器中心的图像像素进行修改以达到滤波的目的。对于滤波器有几个要求值得注意,首先,滤波器矩阵的大小应该是奇数,以便拥有一个滤波器中心以及滤波器半径,比如5x5的滤波器,半径即为2;如果滤波器矩阵所有元素之和大于1,则滤波之后的图像亮度将高于原图像。

线性滤波

线型滤波中对输入图像像素进行的是线性运算。用滤波器(卷积核)里面的系数与图像中对应像素相乘并求和,得到的结果即为中心像素的像素值。线型滤波包括方框滤波、均值滤波、高斯滤波、拉普拉斯滤波、sobel算子(后面两种属于锐化滤波)等。下面对其进行具体介绍。

方框滤波

卷积核中的系数都相同时便是方框滤波器。此时滤波器覆盖下的像素值直接相加求和得到中心像素点的像素值。如果方框滤波不作归一化处理会使得输出图像亮度过高而显示一片白色,所以一般不使用方框滤波。
在opencv中的方框滤波函数是cv2.boxFilter()。如果不使用归一化则应该传入参数False。
使用归一化可直接采用均值滤波函数cv2.blur()或传入参数True。

均值滤波

将卷积核覆盖下的像素点取均值并赋给当前像素,以替代原来的像素值。即为均值滤波。事实上,方框滤波归一化后即为均值滤波。均值滤波的确可以起到去除图像噪声的效果,但同时会使得图像边缘以及细节纹理模糊,并且采用的卷积核越大,滤波后的图像越模糊。若想对均值滤波进行改进,可以使用加权后的均值滤波。即卷积核中系数大小不相同,给每个位置富裕不同的权重,以改善均值滤波效果。在opencv中可以使用cv2.blur()函数完成均值滤波。传入的参数如下:输入图像、定义的卷积核大小。

高斯滤波

简单地说,高斯滤波即为加权后的均值滤波。对于高斯滤波来说,卷积核中的系数变得不同,并且这些系数服从高斯分布。通过离散化的高斯函数来计算得到高斯卷积核,卷积核中距离中心点越近的像素点系数越大,距离越远则系数越小。如果得到的卷积核中的系数和不为1则对其记性归一化处理,以保证滤波后图像亮度不变。这也体现了图像中相邻越近的像素点相关性越大的特点。可以说,高斯滤波是目前最有用的滤波方式。可以使用opencv中的cv2.GaussianBlur()函数实现高斯滤波。相比于均值滤波,高斯滤波函数需要多传入一个参数即高斯函数标准差。标准差越大,靠近中间的值越大,图像也就越模糊。

一些锐化滤波方法

上述提到的都是线性滤波中的平滑滤波方法,还有一些同样使用卷积运算的滤波方法属于图像的锐化滤波,属于高通滤波。采用梯度算子对图像求出边缘,起到增强图像边缘以及纹理细节的作用。比如sobel算子、laplacian算子等。以上两种算子在opencv中均有对应的函数可以实现。此处对于锐化滤波不做过多介绍。

非线性滤波

中值滤波

顾名思义,中值滤波方法即为使用卷积核覆盖下的像素点的中值来替代中心像素点,常用于消除图像中的椒盐噪声。值得一提的是,中值滤波对于消除椒盐噪声很有效。中值滤波的去燥效果来源于两个因素,即邻域的空间范围以及中值计算中涉及的像素数。相对于均值滤波,中值滤波在输出像素时,不会受到噪声像素的影响,所以对于去除噪声有着更好的效果。中值滤波中小于滤波器面积一半的亮或暗的物体基本上会被滤除,而较大的区域几乎会原封不动地保存下来,因此中值滤波器的空间尺寸必须根据现有的问题来进行调整。Opencv中的cv2. medianBlur()函数可以实现中值滤波运算,参数为输入图像以及卷积核大小,应当注意中值滤波的卷积核大小同样必须是奇数。

双边滤波

双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。高斯滤波仅采用空间信息对图像进行卷积,认为离中心像素点越近则权重系数越大;双边滤波中加入了灰度信息的权重,认为灰度值与中心像素灰度值相近的权重系数大,灰度值相差大的点则权重越小。权值大小,则由高斯函数确定。两种权重系数相乘得到最终卷积模板。相对于高斯滤波,双边滤波可以更好地保留边缘信息,但由于会保留高频信息,可能导致部分噪声无法去除,而只能对低频信息进行滤波。Opencv中提供了cv2. bilateralFilter()实现双边滤波运算。传入的参数为输入图像、像素邻域的直径大小、空间高斯函数标准差以及灰度值相似性高斯函数标准差。标准差越大,边缘越模糊。直径越大,覆盖的区域面积越大,能够滤除的噪声也就也多。但是双边滤波花费的时间也更多

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值