六、图像滤波与增强
(一)线性滤波
-
卷积的概念和原理在图像滤波中的应用
- 卷积概念:卷积是一种数学运算,在图像滤波中有着关键作用。对于离散的二维图像数据,卷积操作是将一个小的卷积核(也称为滤波器)与图像的每个像素及其邻域进行加权求和。从数学角度看,设图像为
,卷积核为
,则卷积后的图像
的计算式为:
其中a和b定义了卷积核的大小范围。 - 在图像滤波中的原理:在图像滤波中,卷积核中的每个元素代表了对图像相应位置像素的加权系数。不同的卷积核可以实现不同的滤波效果。例如,当卷积核中的所有元素值相等且总和为 1 时,它实现的是一种平均滤波效果,即每个像素的值被其邻域像素的平均值所替代,从而达到平滑图像的目的。如果卷积核设计为特定的形式,比如水平或垂直方向上的加权系数不同,可以检测图像在相应方向上的边缘或纹理变化。
- 卷积概念:卷积是一种数学运算,在图像滤波中有着关键作用。对于离散的二维图像数据,卷积操作是将一个小的卷积核(也称为滤波器)与图像的每个像素及其邻域进行加权求和。从数学角度看,设图像为
-
常见的线性滤波器(如均值滤波器、高斯滤波器)介绍
- 均值滤波器:
- 原理:均值滤波器使用的卷积核中所有元素值相等,且总和为 1。例如,对于一个 3×3 的均值滤波器卷积核,其形式为:
它将每个像素的值替换为其周围 3×3 邻域像素值的平均值。对于图像中的每个像素,都按照这种方式计算,从而实现对图像的平滑处理。这种滤波器可以有效去除图像中的椒盐噪声(即随机出现的黑白点噪声),但会使图像变得模糊,因为它在平滑噪声的同时也模糊了图像的边缘和细节。 - 应用场景:常用于对图像质量要求不高、只需要简单去除噪声的情况,比如一些实时性要求较高但对图像清晰度要求相对较低的监控图像预处理。
- 原理:均值滤波器使用的卷积核中所有元素值相等,且总和为 1。例如,对于一个 3×3 的均值滤波器卷积核,其形式为:
- 高斯滤波器:
- 原理:高斯滤波器的卷积核是基于二维高斯函数生成的。二维高斯函数公式为:
其中是高斯分布的标准差,决定了高斯函数的形状和滤波的强度。在实际应用中,通常会根据指定的
值生成离散的卷积核。例如,当
时,可以生成一个合适大小(如 5×5)的卷积核。高斯滤波器在滤波过程中,离中心像素越近的邻域像素权重越大,这使得它在平滑图像时能够更好地保留图像的边缘信息,相比均值滤波器,对图像的模糊程度更小。
- 应用场景:广泛应用于需要在去除噪声的同时尽可能保留图像细节的情况,如医学图像、摄影图像的预处理。在计算机视觉的许多任务中,如目标检测和识别前的图像预处理,高斯滤波是常用的操作,因为它不会过度破坏图像的边缘和纹理等重要特征,有利于后续的特征提取和分析。
- 原理:高斯滤波器的卷积核是基于二维高斯函数生成的。二维高斯函数公式为:
- 均值滤波器:
-
使用 filter2D () 函数实现自定义线性滤波器的方法
- 函数原型及参数:
void cv::filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor = Point(-1,-1), double delta = 0, int borderType = BORDER_DEFAULT);
src
:输入图像,是需要进行滤波的原始图像,类型为Mat
。dst
:输出图像,即滤波后的图像,同样是Mat
类型,需要在调用函数前确保其有足够的空间来存储结果。ddepth
:目标图像的深度,即每个像素
- 函数原型及参数: