原理
图像中的边缘线是像素值显著变化的边界,而在数学上确定一个函数发生显著变化的位置的方法就是求导。
假设有一个1维的图片 f ( t ) f(t) f(t),在 t t t处有颜色值的显著变化:
对 f ( t ) f(t) f(t)求一阶导数 f ′ ( t ) f'(t) f′(t),可以很轻易发现在相应位置的一个导数的最大值:
Sobel算子
- Sobel算子是一个离散微分算子,计算图片颜色值变化的近似斜率
- Sobel算子将高斯平滑和微分算法结合起来了
公式
如果假设有一张输入图片为 I I I,则:
- x x x方向上的变化 G x G_x Gx可以通过将 I I I和奇数方的卷积核进行卷积运算得到,比如,使用一个 3 × 3 3 \times 3 3×3的卷积核,可以算得:
G x = [ − 1 0 + 1 − 2 0 + 2 − 1 0 + 1 ] ∗ I G_x= \begin{bmatrix} -1 & 0 & +1 \\ -2 & 0 & +2 \\ -1 & 0 & +1 \end{bmatrix} * I Gx= −1−2−1000+1+2+1 ∗I - 同样的,将这个卷积核逆时针旋转90度之后,再和 I I I进行卷积运算,就可以得到**