1. 程式人生 > >影象處理中梯度詳解 及gradient()函式

影象處理中梯度詳解 及gradient()函式

影象在計算機中以數字影象的形式儲存,即以數值矩陣的形式存在,形成了離散的數值訊號,在此基礎上,對於影象處理中的數值的多樣性計算分析也影響著初步影象分析。

影象梯度的定義:

影象函式f(x,y)在點(x,y)的梯度是一個具有大小和方向的向量,設為Gx 和 Gy 分別表示x方向和y方向的梯度,這個梯度的向量可以表示為:

                                                            

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

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

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

Img(i,j)是影象數值矩陣的畫素值,(i,j)為畫素相應座標。

Gradient(Img)函式求的是數值上的梯度,假設Img為圖片數值矩陣.

Matlab中計算方法:

 [Rx,Ry]=gradient(Img);

(1)水平方向梯度Rx,Rx的第一列元素為原矩陣第二列與第一列元素之差,Rx的第二列元素為原矩陣第三列與第一列元素之差除以2,以此類推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最後一列則為最後兩列之差。

(2)垂直方向梯度Ry,同理,可以得到Fy。