1. 程式人生 > >影象處理演算法(四)---邊緣檢測

影象處理演算法(四)---邊緣檢測

影象處理領域中涉及很多特徵,角點特徵,邊緣特徵,形狀特徵,紋理特徵,顏色特徵,直方圖統計特徵等等(還有很多^_^)。這些特徵有些是比較底層的特徵,如角點特徵,邊緣特徵,顏色特徵等,有些則是較為高層的特徵,如形狀特徵,紋理特徵,直方圖統計特徵。       這裡我們主要談論底層特徵中的邊緣特徵,提取這些特徵的手段叫作邊緣特徵提取或叫作邊緣檢測。邊緣檢測常用的運算元中分為一階檢測運算元和二階檢測運算元,這裡提及的運算元有些類似數學中的微分的概念(要有一定的數學基礎哦)。邊緣檢測的另外一種形式也被成為相位一致性,這個概念我到後面再談及,有了這個概念之後幫助我們從影象頻域分析邊緣提取這一過程。 表1 影象處理邊緣檢測運算元分類表格
型別 具體運算元
一階邊緣檢測 Roberts交叉運算元,Prewitt運算元,Sobel運算元和Canny運算元
二階邊緣檢測 Lapacian運算元,Marr-Hildreth和LapLacian of Gaussian
其他邊緣檢測運算元 Spacek運算元,Petrou運算元和Susan運算元
      基於邊緣檢測的分析不易受整體光照強度變化的影響,同時利用邊緣資訊容易凸顯目標資訊和達到簡化處理的目的,因此很多影象理解方法都以邊緣為基礎。邊緣檢測強調的是影象對比度。對比度從直觀上的理解就是差異的大小,若對於灰度影象來說就是灰度值(亮度值)的差別,若對於彩色影象則是顏色的差異了。這些差異可以增強影象中的邊界特徵,因為這些邊界就是影象對比度較大的體現。       這就是我們感知目標邊界的大體機制,因為目標的表現就是與它周圍的亮度差別。      一、水平差分運算元、垂直差分運算元       亮度變化可以通過對相鄰點進行差分處理來增強。對水平方向的相鄰點進行差分處理可以檢測垂直方向上的亮度變化,根據其作用通常被稱為水平邊緣檢測運算元(horizontal edge detector),這樣就可以檢測出垂直邊緣Ex;對垂直方向的相鄰點進行差分處理可以檢測水平方向上的亮度變化,根據其作用通常被稱為垂直邊緣檢測運算元(vertical edge detector),這樣就可以檢測出水平邊緣Ey。 Ex
= |Px,y - Px+1,y|  Ey = |Px,y - Px,y+1|       將水平邊緣檢測運算元和垂直邊緣檢測運算元結合,就可以同時檢測出垂直邊緣和水平邊緣,即: Ex,y =|Px,y - Px+1,y + Px,y - Px,y+1| 由此可以得到, Ex,y =|2 x Px,y - Px+1,y - Px,y+1| 圖1 一階差分模板       利用泰勒級數分析可以知道相鄰兩點的差值是一階導數的估算值,誤差graphic。       如果在相鄰兩個差分點之間插入一個畫素來實現,相當於,相當於用兩個相鄰點的一階差分作為新的水平差值Exx,其中 Exxx,y = Ex x+1,y
 + Ex x,y = |Px+1,y - Px,y + Px,y - Px-1,y| = |Px+1,y - Px-1,y |       利用泰勒級數分析可以知道一階微分的估算值是由一個畫素隔開的兩個點的差值,誤差graphic。                                                                                                                                                                                                                                       圖2-1 改進的一階差分模板My                      圖2-2 改進的一階差分模板Mx  
        二、一階邊緣檢測        (a) Roberts交叉運算元        Roberts交叉運算元實現的基礎是一階邊緣檢測,利用兩個模板,計算對角線上而不是座標軸上的兩個畫素的微分。這裡命名這兩個模板分別為M+,M-                         圖3-1 Roberts交叉運算元模板M+          圖3-2Roberts交叉運算元模板 M-        (b) Prewitt邊緣檢測運算元        邊緣檢測類似微分處理,它檢測的變化的部分,必然對噪聲和影象的亮度變化都有相應處理。因此,把均值處理加入到邊緣檢測過程中一定要非常謹慎。我們可以把垂直模板Mx擴充套件成三行,而水平模板My擴充套件成三列。這樣就得到Prewitt邊緣檢測運算元。                                                                                                                                                                                                                  圖4-1 Prewitt運算元模板Mx                   圖4-2 Prewitt運算元模板My        (c) Sobel邊緣檢測運算元        如果把使兩個Prewitt模板運算元中心畫素的權值去兩倍的數值,便得到有名的Sobel邊緣檢測運算元,它是由向量方式確定邊緣的兩個掩碼組成的。Sobel很受歡迎是因為它比Prewitt運算元等同時期的其他邊緣檢測運算元效能更好。                            圖5-1 Sobel運算元模板Mx                   圖5-2 Sobel運算元模板My       Sobel運算元的通用形式綜合了一條座標軸上的最優平滑和另一條座標軸上的最優差分。值得注意的是,大的邊緣檢測模板的好處是它減少噪聲的平滑效果更好,然而邊緣模糊卻成為一個大難題。        (d) Canny邊緣檢測運算元       Canny邊緣檢測運算元可以說是當前最受歡迎的邊緣檢測方法。它由三個主要目標形成:
  • 無附加響應的最優檢測
  • 檢測邊緣位置和實際邊緣位置之間距離最小的正確定位
  • 減少單邊緣的多重響應而得到單響應
      Canny指出高斯運算元對影象平滑處理是最優的。Canny邊緣檢測一般處理的步驟可以粗略的分為以下四個步驟:       1)應用高斯平滑處理       2)應用Sobel運算元       3)應用非極大值抑制(非極大值抑制實質上是找到邊緣強度資料中的最高點)       4)滯後閾值處理來連線邊緣點(閾值處理需要兩個閾值,即上限閾值和下限閾值 )      三、二階邊緣檢測      一階邊緣檢測的前提是微分處理可以使變化增強。找影象變化率最大的地方不僅可以通過一階變化率的極值尋找,同時也可以通過二階變化的過零點來尋找。        (a) Laplacian運算元       二階微分可以利用兩個相鄰一階微分的差值來近似。這也和數學中的概念相一致。                                                          圖6-1 垂直二階模板                                          圖6-2水平二階模板     如果把水平二階運算元和處置二階微分運算元結合起來,可以得到一個全Laplacian模板運算元。 圖7 Laplacian邊緣檢測運算元        (b) Marr-Hidreth運算元       Marr-Hidreth也是利用高斯濾波。該運算元的曲面圖是墨西哥帽子的形狀,所以有時也被成為“墨西哥帽子”運算元,如下圖所示。 圖 8 LoG運算元的形狀      實際上,如果把高斯平滑和Laplacian運算元結合起來,可以得到一個LoG(Laplacian of Gaussian)運算元,它就是Marr-Hidreth的基。      各運算元的效果比較:      四、其他邊緣檢測      邊緣檢測作為視覺處理的初級階段,方法有很多種,這裡我們再提及兩個設計最優的邊緣檢測方法,Spacelk方法和Petrou方法。有興趣的朋友可以進一步瞭解。這裡需要提及的是Spacek運算元使定位信噪比和峰值分離比的乘積最大化。Spacek運算元比Canny運算元具有很高的效能。Petrou運算元使用的模板比較大,以便儲存最優性,因此Petrou運算元可以處理比較大的計算複雜度,但在使用的時候,應當具體問題具體分析。      五、相位一致性        邊緣檢測運算元的比較突出了它們的一些內在問題:不完整輪廓問題、閾值選擇問題和噪聲響應問題。因為光照強度在影象的不同區域是不一樣的,選擇單個閾值通常不能適用於影象中的所有區域。這些問題單靠簡單初級的處理難以解決。需要優化方法或者使用較為高階的手段才能達到一定的效果。        相位一致性(Phase congruency)方法是一個特徵檢測運算元,它由如下兩個優點:        1)可以檢測大範圍的特徵        2)對區域性(和平滑)光照變化具有不變性       這兩個優點其實就是一致性檢測具有區域性對比度不變性:即使階梯邊緣強度變小,其變化位置並不改變。 參考資料:計算機視覺特徵提取與影象處理(第三版)