數(shù)字圖像 - 邊緣檢測原理 - Sobel, Laplace, Canny算子

先來看張圖葫男,左邊是原圖膳沽,右邊是邊緣檢測后的圖矫渔,邊緣檢測就是檢測出圖像上的邊緣信息彤蔽,右圖用白色的程度表示邊緣的深淺。

sobel.png

邊緣其實就是圖像上灰度級變化很快的點的集合庙洼。
如何計算出這些變化率很快的點顿痪?

1.導數(shù)镊辕,連續(xù)函數(shù)上某點斜率,導數(shù)越大表示變化率越大蚁袭,變化率越大的地方就越是“邊緣”征懈,但是在計算機中不常用,因為在斜率90度的地方揩悄,導數(shù)無窮大卖哎,計算機很難表示這些無窮大的東西。

2.微分删性,連續(xù)函數(shù)上x變化了dx亏娜,導致y變化了dy,dy值越大表示變化的越大蹬挺,那么計算整幅圖像的微分维贺,dy的大小就是邊緣的強弱了。
微分與導數(shù)的關系:dy = f '(x) dx

舉個例子:

在連續(xù)函數(shù)里叫微分巴帮,因為圖像是離散的溯泣,叫差分,和微分是一個意思晰韵,也是求變化率。
差分的定義熟妓,f '(x) = f(x + 1) - f(x)雪猪,用后一項減前一項。
按先后排列 -f(x) + f(x + 1)
提出系數(shù) [-1, 1] 作為濾波模板起愈,跟原圖 f(x) 做卷積運算就可以檢測邊緣了

模板為什么要是奇數(shù)的只恨?

因為模板是偶數(shù)的話,卷積出來的結果應該是放在中間的抬虽,不方便表示官觅。
例如:圖像 [10, 20, 30] 跟 [-1, 1] 卷積后的值,應該放在圖像 10 跟 20 中間的位置阐污,就是應該放在 0 和 1 號位置的中間休涤,也就是 0.5 號位,但是圖像是離散的笛辟,中間沒得放功氨,只能放在 0 號位,也就是 10 的位置手幢,就偏差了 0.5 的位置捷凄,為了方便處理,濾波模板一般都是奇數(shù)個的围来,3跺涤,5匈睁,7 個的。

Sobel 邊緣檢測算子

所以用 f '(x) = f(x + 1) - f(x - 1) 近似計算一階差分桶错。

排好序:[-1 * f(x-1)航唆,0 * f(x),1 * f(x+1)]
提出系數(shù):[-1, 0, 1]

所以模板 [-1, 1] 被改造成了 [-1, 0, 1]
二維情況下就是

-1, 0, 1
-1, 0, 1
-1, 0, 1

這個就是 Prewitt 邊緣檢測算子了牛曹。

f(x-1, y-1),  f(x, y-1),  f(x+1, y-1)
f(x-1, y),    f(x, y),    f(x+1, y)
f(x-1, y+1),  f(x, y+1),  f(x+1, y+1)

中心點 f(x, y) 是重點考慮的佛点,它的權重應該多一些,所以改進成下面這樣的

-1, 0, 1
-2, 0, 2
-1, 0, 1

這就是 Sobel 邊緣檢測算子黎比,偏 x 方向的超营。(類似二元函數(shù)的偏導數(shù),偏x阅虫,偏y)
同理可得

-1, -2, -1
 0,  0,  0
 1,  2,  1

是 sobel 偏 y 方向的算子演闭。

分別計算偏 x 方向的 Gx,偏 y 方向的 Gy颓帝,求絕對值米碰,壓縮到 [0, 255]
區(qū)間,即 G(x, y) = Gx + Gy 就是 sobel 邊緣檢測后的圖像了

Laplace 邊緣檢測算子

拉普拉斯是用二階差分計算邊緣的购城,看連續(xù)函數(shù)的情況下
在一階微分圖中極大值或極小值處吕座,認為是邊緣。
在二階微分圖中極大值和極小值之間的過 0 點瘪板,被認為是邊緣吴趴。

拉普拉斯算子推導:
一階差分:f '(x) = f(x) - f(x - 1)
二階差分:f '(x) = (f(x + 1) - f(x)) - (f(x) - f(x - 1))
化簡后:f '(x) = f(x - 1) - 2 f(x)) + f(x + 1)
提取前面的系數(shù):[1, -2, 1]

二維的情況下,同理可得
f '(x, y) = -4 f(x, y) + f(x-1, y) + f(x+1, y) + f(x, y-1) + f(x, y+1)
提取各個系數(shù)侮攀,寫成模板的形式

0,  1, 0
1, -4, 1
0,  1, 0

考慮兩個斜對角的情況

1,  1, 1
1, -8, 1
1,  1, 1

這就是拉普拉斯算子锣枝,與原圖卷積運算即可求出邊緣。

Canny 邊緣檢測算子

canny計算過程
1.高斯濾波器平滑圖像兰英。
2.一階差分偏導計算梯度值和方向撇叁。
3.對梯度值不是極大值的地方進行抑制。
4.用雙閾值連接圖上的聯(lián)通點畦贸。

通俗說一下陨闹,
1.用高斯濾波主要是去掉圖像上的噪聲。
2.計算一階差分薄坏,OpenCV 源碼中也是用 sobel 算子來算的正林。
3.算出來的梯度值,把不是極值的點颤殴,全部置0觅廓,去掉了大部分弱的邊緣。所以圖像邊緣會變細涵但。
4.雙閾值 t1, t2, 是這樣的杈绸,t1 <= t2
大于 t2 的點肯定是邊緣
小于 t1 的點肯定不是邊緣
在 t1, t2 之間的點帖蔓,通過已確定的邊緣點,發(fā)起8領域方向的搜索(廣搜)瞳脓,圖中可達的是邊緣塑娇,不可達的點不是邊緣。
最后得出 canny 邊緣圖劫侧。

三個算子區(qū)別

sobel 產(chǎn)生的邊緣有強弱埋酬,抗噪性好
laplace 對邊緣敏感,可能有些是噪聲的邊緣烧栋,也被算進來了
canny 產(chǎn)生的邊緣很細写妥,可能就一個像素那么細,沒有強弱之分审姓。

下面三張圖分別是 sobel珍特,canny,laplace 結果圖魔吐。


sobel算子
canny算子
laplace算子
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末扎筒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子酬姆,更是在濱河造成了極大的恐慌嗜桌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辞色,死亡現(xiàn)場離奇詭異骨宠,居然都是意外死亡,警方通過查閱死者的電腦和手機淫僻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門诱篷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壶唤,“玉大人雳灵,你說我怎么就攤上這事≌⒖” “怎么了悯辙?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迎吵。 經(jīng)常有香客問我躲撰,道長,這世上最難降的妖魔是什么击费? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任拢蛋,我火速辦了婚禮,結果婚禮上蔫巩,老公的妹妹穿的比我還像新娘谆棱。我一直安慰自己快压,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布垃瞧。 她就那樣靜靜地躺著蔫劣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪个从。 梳的紋絲不亂的頭發(fā)上脉幢,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音嗦锐,去河邊找鬼嫌松。 笑死,一個胖子當著我的面吹牛意推,可吹牛的內容都是我干的豆瘫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼菊值,長吁一口氣:“原來是場噩夢啊……” “哼外驱!你這毒婦竟也來了?” 一聲冷哼從身側響起腻窒,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤昵宇,失蹤者是張志新(化名)和其女友劉穎华蜒,沒想到半個月后苇本,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怪瓶,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡廷蓉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年若未,在試婚紗的時候發(fā)現(xiàn)自己被綠了活烙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片属愤。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡揍诽,死狀恐怖愉适,靈堂內的尸體忽然破棺而出犯助,到底是詐尸還是另有隱情,我是刑警寧澤维咸,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布剂买,位于F島的核電站,受9級特大地震影響癌蓖,放射性物質發(fā)生泄漏瞬哼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一租副、第九天 我趴在偏房一處隱蔽的房頂上張望坐慰。 院中可真熱鬧,春花似錦用僧、人聲如沸结胀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽把跨。三九已至人弓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間着逐,已是汗流浹背崔赌。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留耸别,地道東北人健芭。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像秀姐,于是被迫代替她去往敵國和親慈迈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內容

  • 不同圖像灰度不同省有,邊界處一般會有明顯的邊緣痒留,利用此特征可以分割圖像。需要說明的是:邊緣和物體間的邊界并不等同蠢沿,邊緣...
    大川無敵閱讀 13,847評論 0 29
  • 1伸头、閾值分割 1.1 簡介 圖像閾值化分割是一種傳統(tǒng)的最常用的圖像分割方法,因其實現(xiàn)簡單舷蟀、計算量小恤磷、性能較穩(wěn)定而成...
    木夜溯閱讀 22,582評論 9 15
  • 前言 本文是關于OpenGL ES的系統(tǒng)性學習過程,記錄了自己在學習OpenGL ES時的收獲野宜。這篇文章的目標是學...
    秦明Qinmin閱讀 3,902評論 1 13
  • 這篇文章總結比較全面:http://blog.csdn.net/timidsmile/article/detail...
    rogerwu1228閱讀 1,826評論 0 3
  • 1 沒想到我在簡書上分享的第一篇文章是關于考研失敗的話題扫步。 雖然不想承認,但終歸一句話:我考研失敗了匈子。 因為家里的...
    沙小年閱讀 461評論 8 4