OpenCV平滑图像

1.理论

注意:下面的解释属于计算机视觉: Richard Szeliski和LearningOpenCV的算法和应用
平滑,也称为模糊,是一种简单而经常使用的图像处理操作。
平滑的原因很多。在本教程中,我们将专注于平滑以减少噪音(其他用途将在以下教程中看到)。

要执行平滑操作,我们将对我们的图像应用过滤器。最常见的滤波器类型是线性的,其中输出像素的值(i.e. g(i,j)),被确定为输入像素值的加权和 (i.e. f(i+k,j+l)) :

opencv顺滑曲线 opencv平滑_权重

被称为内核,它只不过是滤波器的系数。h(k,l)

它有助于将过滤器可视化为跨越图像滑动的系数窗口。

2.我们为什么要平滑图像

图像平滑是指受传感器和大气等因素的影响,遥感图像上会出现某些亮度变化过大的区域,或出现一些亮点 (也称噪声)。 这种为了抑制噪声,使图像亮度趋于平缓的处理方法就是图像平滑。 图像平滑实际上是低通滤波,平滑过程会导致图像边缘模糊化。

2.归一化框过滤器

这个过滤器是最简单的!每个输出像素是其内核邻居的均值(均为相等权重)

内核如下

opencv顺滑曲线 opencv平滑_opencv顺滑曲线_02


高斯滤波器

可能是最有用的过滤器(虽然不是最快的)。高斯滤波是通过将输入数组中的每个点与高斯核进行卷积来完成的,然后将它们相加以产生输出数组。

只是为了使图片更清晰,记住一维高斯内核的样子?

opencv顺滑曲线 opencv平滑_图像平滑_03

假设图像为1D,您可以注意到位于中间的像素将具有最大的权重。其邻居的权重随着它们与中心像素之间的空间距离的增加而减小。

注意

请记住,2D高斯可以表示为:

OpenCV平滑图像

opencv顺滑曲线 opencv平滑_权重_04

其中是平均值(峰值),\ sigma表示方差(每个变量x和y)μσXÿ

中值滤波器
中值滤波器遍历信号的每个元素(在这种情况下为图像),并用其相邻像素的中位数(位于估计像素周围的正方形邻域)中替换每个像素。

双边过滤器
到目前为止,我们已经解释了一些过滤器,其主要目标是平滑输入图像。然而,有时过滤器不仅可以消除噪音,还可以使边缘平滑。为了避免这种情况(至少在一定程度上),我们可以使用双边筛选器。
以与高斯滤波器类似的方式,双边滤波器也考虑相邻像素,其权重分配给它们。这些权重具有两个分量,其中第一个是高斯滤波器使用的相同加权。第二个组件考虑了相邻像素与被评估的像素之间的强度差异。