【CG】Matlab gradient()函数

梯度的概念

梯度的概念: https://en.wikipedia.org/wiki/Gradient

a example for Matlab gradient()

array = [
     1     2     3     4     5
     5     4     3     2     1
     2     7     7     3     2
     3     2     6     5     0
]
[Fx,Fy]=gradient(array) % Fx: 求水平方向的梯度 
                        % Fy:求垂直方向上的梯度

输出

Fx =
    1.0000    1.0000    1.0000    1.0000    1.0000
   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000
    5.0000    2.5000   -2.0000   -2.5000   -1.0000
   -1.0000    1.5000    1.5000   -3.0000   -5.0000


Fy =
    4.0000    2.0000         0   -2.0000   -4.0000
    0.5000    2.5000    2.0000   -0.5000   -1.5000
   -1.0000   -1.0000    1.5000    1.5000   -0.5000
    1.0000   -5.0000   -1.0000    2.0000   -2.0000

计算方法

Fx第一列元素 = array矩阵第二列元素的值 - array第一列元素的值
Fx最后一列元素 = array矩阵最后一列元素的值 - array倒数第二列元素的值
公式: Fx(i,j) = (F(i,j+1)-F(i,j-1)) / 2,
即:(第j+1列元素的值 - j-1列元素的值 ) / 2

Fy第一行元素 = array矩阵第二行元素的值 - array第一行元素的值
Fx最后一行元素 = array矩阵最后一行元素的值 - array倒数第二行元素的值
公式: Fx(i,j) = (F(i+1,j)-F(i-1,j)) / 2,
即:(第i+1行元素的值 - i-1行元素的值 ) / 2

参考文献:

https://en.wikipedia.org/wiki/Gradient

(全文完)

你可能感兴趣的:(圖形圖像)