用于平滑图像的常见滤波算子包括:
1. 均值滤波(normalized box filter):用其像素点周围像素的平均值代替元像素值,在滤除噪声的同时也会滤掉图像的边缘信息。在OpenCV中,可以使用boxFilter和blur函数进行均值滤波。
优点:算法简单,计算速度快;
缺点:降低噪声的同时使图像产生模糊,特别是景物的边缘和细节部分。
2. 高斯滤波(Gaussian filter):高斯滤波为最常用的滤波器,具有可分离性质,可以把二维高斯运算转换为一维高斯运算,其本质上为一个低通滤波器。在OpenCV中可通过函数GaussianBlur进行操作。
适用于消除高斯噪声
3. 中值滤波(median filter):中值滤波用测试像素周围邻域像素集中的中值代替原像素。中值滤波去除椒盐噪声和斑块噪声时,效果非常明显。在OpenCV中,可以使用函数medianBlur进行操作。
优点:抑制效果很好,画面的清析度基本保持;
缺点:对高斯噪声的抑制效果不是很好。
4. 双边滤波(bilateral filter):双边滤波在平滑图像时能够很好的保留边缘特性,但是其运算速度比较慢。在OpenCV中,可以使用函数bilateralFilter进行操作。
除了平滑去噪,图像锐化,求边缘等也是常见的图像滤波应用。这类滤波器常常使用一节或者二阶差分(或微分,对于数字图像而言,其为离散信号,长用差分代替导数)核算子对图像进行滤波。一节差分常用于求取图像边缘。二阶差分常用于图像增强。常用的这类算子包括:
1. Sobel operator:Sobel算子通过计算水平和垂直方向上的一节差分来进行计算。在OpenCV函数中,可通过使用Sobel函数进行计算。
2. Laplacian operator:Laplacian算子通过计算二阶差分(微分)来进行计算。在OpenCV函数中,可通过使用Laplacian函数进行计算。