本文主要对opencv的Sobel导数、Scharr滤波器、Laplacian算子、Canny边缘检测的函数进行简单的说明。
1、Sobel导数
索贝尔算子(Sobel operator)是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。Sobel导数结合了高斯平滑和微分求导。
假设被作用图像为 :
-
在两个方向求导:
-
水平变化: 将 与一个奇数大小的内核 进行卷积。比如,当内核大小为3时, 的计算结果为:
-
垂直变化: 将:math:I 与一个奇数大小的内核 进行卷积。比如,当内核大小为3时, 的计算结果为:
-
-
在图像的每一点,结合以上两个结果求出近似 梯度:
有时也用下面更简单公式代替:
Sobel
Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator.
-
C++:
void
Sobel
(InputArray
src, OutputArray
dst, int
ddepth, int
dx, int
dy, int
ksize=3, double
scale=1, double
delta=0, int
borderType=BORDER_DEFAULT
)
¶