梯度:参考
1.已知Z=F(X,Y),假设它的图像是这样:
2.固定住X,改变Y。在每个点上,函数Z的变化值除以Y的变化值就是此线的斜率。固定住Y,改变X,也是同样的道理
3.在每一点,都可以得到在x方向上变化的斜率大小和正负,可以表示为一个箭头。y方向上也是一样。
4.梯度就是X方向的箭头和Y方向的箭头的和。假设某一点上,x的偏导数为3,y的偏导数为-1,则该点的梯度就是(3,-1)。
图像梯度:参考
图像是一个二维函数f(x,y),其微分当然就是偏微分。因此有:
因为图像是一个离散的二维函数,ϵϵ不能无限小,我们的图像是按照像素来离散的,最小的ϵϵ就是1像素。因此,上面的图像微分又变成了如下的形式(ϵ=1ϵ=1):
这分别是图像在(x, y)点处x方向和y方向上的梯度,从上面的表达式可以看出来,图像的梯度相当于2个相邻像素之间的差值。
梯度算法 :
梯度简单来说就是求导。OpenCV 提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr 和Laplacian。什么叫高通呢?其实就是和图像模糊相反。图像模糊是让低频通过,阻挡高频,这样就可以去除噪点,让锐利的边缘变平滑。高通滤波器就是让高频通过,阻挡低频,可以让边缘更加明显,增强图像。
Sobel 算子和Scharr 算子
Laplacian 算子
(让人疑惑的是:这个卷积核就能起到求二阶导数的作用了?)
black就是没有值,0,是被过滤掉的。而白色就是被留下来的高频部分了。