1. 程式人生 > >影象區域性特徵學習(筆記1之邊緣檢測)

影象區域性特徵學習(筆記1之邊緣檢測)

邊緣

所謂邊緣,就是指影象中灰度強烈變化的區域。這個強烈變化,就很容易想到微分運算。(PS:涉及到微分運算,就要想到去噪,因為微分運算對噪聲是很敏感的。)

演算法分類

  • 一階微分邊緣運算元,經典運算元比如:Roberts(羅伯特)、Prewitt(普魯伊特)、Sobel(索貝爾),Canny(坎尼)等。

  • 二階微分邊緣運算元,LOG邊緣檢測運算元。

簡要介紹一下,Roberts(羅伯特)、Prewitt(普魯伊特)、Sobel(索貝爾)和LOG邊緣檢測運算元這幾種模板檢測運算元。

這裡寫圖片描述
上面給出了,梯度,梯度模值以及梯度方向的定義。然後不同運算元的區別就在與梯度的求解。其梯度的模值和梯度方向的求解方式是相同的,有的演算法中對於梯度模值的求解利用的是一範數或者∞範數,但是這個不是運算元的核心區別。

Roberts(羅伯特)

Roberts(羅伯特)運算元是一種2x2的模板運算元,其梯度求解是利用下式獲得:
這裡寫圖片描述
轉換為模板矩陣如同下面所示:
這裡寫圖片描述

Prewitt(普魯伊特)&Sobel(索貝爾)

介紹3x3的模板運算元時,首先介紹一下在3x3的模板運算元中不同位置像元的權重設定,後面的介紹就按照這種設定來進行的。如下圖所示:
這裡寫圖片描述
Prewitt(普魯伊特)、Sobel(索貝爾)兩種都是一種3x3的模板運算元,兩者求解的梯度的模式是類似的,只是不同係數。兩者求解梯度都是基於下式求解:
這裡寫圖片描述
Prewitt(普魯伊特)運算元中c選取的是1,Sobel(索貝爾)運算元中c選取的是2.這樣就獲取得到了不同的3x3的模板運算元。
Prewitt(普魯伊特)運算元:
這裡寫圖片描述


Sobel(索貝爾)運算元:
這裡寫圖片描述

LOG邊緣檢測運算元

二階微分運算元邊緣檢測,利用的是影象在邊緣處的階躍性導致影象二階微分在邊緣處出現零值。因此該方法也稱之過零點運算元或者拉普拉斯運算元。直接利用影象的二階微分存在的不利因素就是,對噪聲特別敏感,Marr等提出的LoG運算元較好的解決了噪聲的問題。其實原理也是特別簡單,就是對影象先進行高斯濾波去除噪聲的影響,然後再對其結果進行二階微分運算。由於使用高斯函式對影象進行濾波並對濾波結果進行二階微分的過程可以轉換為先對高斯函式進行二階微分,在利用高斯函式的二階微分結果對影象進行卷積操作。下圖是一個5x5的高斯函式的二階微分生成的邊緣檢測模板。
這裡寫圖片描述

下一篇我再詳細介紹比較成熟的Canny運算元。