Scharr 算子
在说 Scharr 算子之前,必须要提的是前面我们介绍过的 Sobel 算子, Sobel 算子虽然可以有效的提取图像边缘,但是对图像中较弱的边缘提取效果较差。
这是由于 Sobel 算子在计算相对较小的核的时候,其近似计算导数的精度比较低,例如一个 3 * 3
的 Sobel 算子,在梯度角度接近水平或垂直方向时,其不精确性就非常明显。
因此引入 Scharr 算子。Scharr 算子是对 Sobel 算子差异性的增强,两者之间的在检测图像边缘的原理和使用方式上相同。
而 Scharr 算子的主要思路是通过将模版中的权重系数放大来增大像素值间的差异。
Scharr 算子又称为 Scharr 滤波器,也是计算 x 或 y 方向上的图像差分,在 OpenCV 中主要是配合 Sobel 算子的运算而存在的,其滤波器的滤波系数如下:
Scharr 算子在 OpenCV 中的方法原型如下:
def Scharr(src, ddepth, dx, dy, dst=None, scale=No