梯度

梯度(gradient)的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

梯度下降在多维空间 梯度是二维还是三维_CV

 

梯度下降在多维空间 梯度是二维还是三维_gradient_02

 

当然,梯度的概念也可以推广到三元函数的情形。同样,该梯度方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。

同样的,在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。

图像

图像可以看作是二维离散函数。

Lena 图像-- 灰度图

梯度下降在多维空间 梯度是二维还是三维_梯度下降在多维空间_03

 

图像中央 21 x 21 区域块儿,

梯度下降在多维空间 梯度是二维还是三维_CV_04

函数视角 - 直方图

梯度下降在多维空间 梯度是二维还是三维_图像梯度_05

 曲线图

梯度下降在多维空间 梯度是二维还是三维_gradient_06

 

 

图像梯度

既然图像是二维离散函数,那么图像梯度其实就是这个二维离散函数的求导。

 

图像梯度: G(x,y) = dx(i,j) + dy(i,j);

dx(i,j) = I(i+1,j) - I(i,j);

dy(i,j) = I(i,j+1) - I(i,j);

其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。

图像梯度一般也可以用中值差分:

dx(i,j) = [I(i+1,j) - I(i-1,j)]/2;

dy(i,j) = [I(i,j+1) - I(i,j-1)]/2;

图像边缘一般都是通过对图像进行梯度运算来实现的。

上面说的是简单的梯度定义,其实还有更多更复杂的梯度公式。

 

图像梯度算子

 

对于离散的图像来说,一阶微分的数学表达相当于两个相邻像素的差值,根据选择的梯度算子不同,效果可能有所不同,但是基本原理不会变化。

 

Roberts算子

梯度下降在多维空间 梯度是二维还是三维_sobel_07

 

Sobel 算子

梯度下降在多维空间 梯度是二维还是三维_梯度下降在多维空间_08

Prewitt 算子

梯度下降在多维空间 梯度是二维还是三维_CV_09

 

 

图像梯度的权重和角度

权重 / 振幅 :magnitude, 表示边缘强度信息

方向 / 角度:theta,预言边缘的方向走势。

梯度下降在多维空间 梯度是二维还是三维_gradient_10

 

Theta = tan-1(yGradient/xGradient)

 

 

梯度下降在多维空间 梯度是二维还是三维_图像梯度_11

注意,45° 算子检测出的是 135° 边缘,水平算子检测出的是竖直边缘。a = (180° - b) 的关系。权重图像则是把全部边缘凸显出来。

 

Ref