OpenCV Blurring
理论 Smoothing也叫blurring(模糊化),是一个简单而常用的图像处理操作。 Smoothing有很多原因。在本教程中,我们将重点讨论平滑操作,以减少噪音。 为了进行平滑操作,我们将对我们的图像应用一个filter。最常见的filter是线性的,其中输出像素的值(即 $g(i,j)$ )为输入像素值的加权和(即 $f(i+k,j+l)$ )。 $$ g(i, j) = \sum_{k, l}{f(i+k, j+l)h(k, l)} $$ $h(k,l)$ 被称为kernel,它只不过是filter的系数。这有助于把滤波器想象成一个在图像上滑动的系数窗口。 滤波器有很多种类,这里我们将提到最常用的几种。 Normalized Box Filter(归一化块滤波器) 这个滤波器是最简单的,每个输出像素都是其内核邻居的平均值(所有的像素都有相同的权重)。 $$ K = \frac{1}{K_{width} \cdot k_{height}} \begin{bmatrix} 1 & 1 & 1 & …& 1\\ 1 & 1 & 1 & …& 1\\ . & . & . & …& 1\\ 1 & 1 & 1 & …& 1 \end{bmatrix} $$ Gaussian Filter(高斯滤波器) 可能是最有用的滤波器(尽管不是最快的)。高斯滤波是通过用高斯内核对输入阵列中的每个点进行卷积,然后将它们全部相加来产生输出阵列的。 让我们回顾一下1D Gaussian kernel是什么样子: 假设图像是一维的,你可以注意到,位于中间的像素会有最大的权重。它的邻居的权重随着它们与中心像素之间的空间距离增加而减少。...