一个函数的导数 dx = delt x / delt v, 就是x方向上的增量和 v方向增量的比值。(v方向我随便取的一个变量,主要是为了区别出一个方向), 把这个概念转换到图像上面,就是 像素值的增量 和 坐标方向增量的比值。(坐标方向我们总是取下一个像素,所以这个方向的增量可以认为总是为1,最终,像素值的增量就是导数,也叫做梯度)
举例而言,有下面9个像素的图片:
a | b | c |
d | e | f |
g | h | i |
对于中心像素e:
dx=f - e
dy=h - e
有时候,我们希望把这个变化加强,也就是把dx的值变的更大,这就是sobel算在,
dx=(c+2f+i)-(a+2d+g)
dy=(g+2h+i)-(a+2b+c)
sobel算子等价的卷积(注意,卷积运算的时候需要把矩阵旋转180,我总觉得这么太麻烦了,所以直接记忆出旋转180后的结果会更好,下面2个卷积是已经旋转180的。):
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |