影像梯度

影像梯度(Image gradient)是指影像強度和顏色的方向性變化。影像的梯度在影像處理中是基礎的一環。舉例來說,Canny邊緣檢測器(Canny edge detector)用計算影像梯度來做邊緣檢測。在數位影像處理軟體或是繪圖軟體中,影像的梯度也可以用來將顏色做漸進式的混合,例如右圖中可以將綠色從左到右漸進的變成藍色。

藍色到綠色的顏色梯度。

以下用影像的強度函數(intensity function)的梯度作為範例說明。影像的強度函數是一個雙變數函數,變數分別是縱軸和橫軸的座標值,此時強度函數的梯度即為一個二維的向量,分別代表縱軸和橫軸方向的導數。對於每個像素點,梯度向量的方向為可能的最大強度變化,而梯度向量的長度則是對應到該方向變化的比例。[1]

因為在數位影像中的強度函數是離散的數據點,要計算這個函數的導數,需要假設這個離散的強度函數是從連續函數抽樣來的。有了這個假設(在加上其它假設),許多估計法可以計算離散強度函數的導數。最常被使用到的方法是計算影像和一個濾波器卷積,像是索伯算子(Sobel operator)或Prewitt算子(Prewitt operator)。

電腦視覺

 
左圖為一張貓的強度影像,代表像素的明暗度。中圖為橫軸方向的梯度影像,表示影像強度在水平方向的變化。相同的,右圖為縱軸方向的梯度影像,表示影像強度在垂直方向的變化。梯度影像中,灰色的部份代表較小的梯度,黑色的部份代表較大的梯度。可以觀察在原圖像素值變化較大的部份(黑白的邊界),在梯度影像有較大的梯度。

在電腦視覺的應用裡,影像的梯度可以用來抽取影像中的資訊。可以藉由用卷積濾波器(例如Sobel濾波器),從原始影像生成一張梯度影像。梯度影像的每個像素點的值是由原圖同位置像素在某特定方向的變化計算出的,在應用上通常會計算橫軸和縱軸的梯度影像。

邊緣檢測是梯度影像最常見的應用之一。在計算出梯度影像之後,具有比較大梯度的像素,就是邊緣可能的位置。Canny邊緣檢測器就是一個藉由影像梯度來做邊緣檢測的演算法。

影像梯度也可以幫助抽取和配對影像的特徵(feature)。使用不同的相機拍攝相同的場景時,因為相機本身的參數不同,拍出來的影像可能會有截然不同的像數值。此時,若以影像的像素值作為配對兩影像的標準,會因為相同物體在兩影像有不同的像數值導致配對失敗。此時可以計算梯度影像最為一個更加可靠的特徵,因為儘管相機參數或是場景的亮度不同,梯度較高(通常是物體邊界)的位置不會改變,所以梯度影像對於相機參數和場景亮度的變化較不敏感,比較適合作為配對特徵的依據。

數學

一張影像的梯度即為他的偏微分,根據橫軸和縱軸的方向表示為一個向量:[2]:165

 ,
  是對x的導數 (x方向的梯度)
  是對y的導數 (y方向的梯度)

一張影像的導數可以用有限差分估計(finite differences)。如果使用中央差分,可以用一維濾波器和影像 的卷積來估計對y的導數, 代表一維的卷積運算:

 

這個 2×1 的濾波器會讓影像平移半個像素的位置,為了避免這個狀況,可以使用 3×1 的濾波器:

 

梯度的方向可以由下式計算:[2]:706

 ,

而梯度的大小可以由下式計算:[3]

 

參考文獻

  1. ^ Jacobs, David. "Image gradients頁面存檔備份,存於網際網路檔案館)." Class Notes for CMSC 426 (2005)
  2. ^ 2.0 2.1 Gonzalez, Rafael; Richard Woods. Digital Image Processing 3rd. Upper Saddle River, New Jersey: Pearson Education, Inc. [2019-06-27]. ISBN 978-0-13-168728-8. (原始內容存檔於2022-06-01). 
  3. ^ 存档副本. [2019-06-27]. (原始內容存檔於2021-07-23).