梯度(gradient)是函数在改点变化最大的值,在用Matlab做图像处理中,梯度可有以下公式来计算:

[Fx,Fy]=gradient(F)

1.F是一维矩阵,有Fx=gradient(F,L),L为俩元素之间的距离。

2.F是二维矩阵,(Fx,Fy)=gradient(F,Lx,Ly),Lx,Ly表示各自方向上各点间的距离。

3.F是三维矩阵,(Fx,Fy,Fz)=gradient(F,Lx,Ly,Lz),Lx,Ly,Lz表示各自方向上各点间的距离。

这样写还是比较抽象,举一个二维矩阵的例子

>> A=[1 8 6;4 3 6;7 8 5]

A =

     1     8     6
     4     3     6
     7     8     5

 

Fx =

    7.0000    2.5000   -2.0000
   -1.0000    1.0000    3.0000
    1.0000   -1.0000   -3.0000


Fy =

    3.0000   -5.0000         0
    3.0000         0   -0.5000
    3.0000    5.0000   -1.0000

 

   其计算方法很简单,Fx的第一列为原矩阵第二列减去第一列,第二列等于原矩阵的第三列减去第二列,算出的结果每个元素除二,第三列为原矩阵最后两列的差值。

  同理,Fy就变成行的运算。

   tips:第一行/列和最后一行/列计算时不需要除二,中间的行/列除二运算。