1. 程式人生 > >影象的梯度(The Gradient of Image)

影象的梯度(The Gradient of Image)

一、影象梯度的定義

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

這個向量的幅度為

方向角為:

對於數字影象而言,相當於對二維離散函式求梯度,如下:


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);
數字影象中,更多的使用差分來近似導數,最簡單的梯度近似表示式如下:

梯度的方向是函式f(x,y)變化最快的方向,當影象中存在邊緣時,一定有較大的梯度值,相反,當影象中有比較平滑的部分時,灰度值變化較小,則相應的梯度也較小,影象處理中把梯度的模簡稱為梯度,由影象梯度構成的影象成為梯度影象(we can get the gradient image through computing the gradient of each pixel in the image)
經典的影象梯度演算法是考慮影象的每個畫素的某個鄰域內的灰度變化,利用邊緣臨近的一階或二階導數變化規律,對原始影象中畫素某個鄰域設定梯度運算元,通常我們用小區域模板進行卷積來計算,有Sobel運算元、Robinson運算元、Laplace運算元等。
二、影象一階微分應用
首先看一下數學中一維的微分公式Δf = f(x+1) – f(x), 對於一幅二維的數字影象f(x,y)而言,需要完

成XY兩個方向上的微分,所以有如下的公式:

分別對X,Y兩個方向上求出它們的偏微分,最終得到梯度Delta F.

對於離散的影象來說,一階微分的數學表達相當於兩個相鄰畫素的差值,根據選擇的梯度算

子不同,效果可能有所不同,但是基本原理不會變化。最常見的運算元為Roberts運算元,其它

常見還有Sobel,Prewitt等運算元。以Roberts運算元為例的X,Y的梯度計算演示如下圖:

影象微分(梯度計算)是影象邊緣提取的重要的中間步驟,根據X,Y方向的梯度向量值,可以

得到如下兩個重要引數振幅magnitude, 角度theta,計算公式如下:

Theta = tan-1(yGradient/xGradient)

magnitude表示邊緣強度資訊

theta預言邊緣的方向走勢。

假如對一幅數字影象,求出magnitude之後與原來每個畫素點對應值相加,則影象邊緣將被

大大加強,輪廓更加明顯,是一個很典型的sharp filter的效果。
--------------------- 
作者:不鬧的瘋子 
來源:CSDN 
原文:https://blog.csdn.net/image_seg/article/details/78790968 
版權宣告:本文為博主原創文章,轉載請附上博文連結!