【小林的OpenCV基礎課 番外】極簡邊緣運算元基礎知識
02-14
圖像中邊緣的檢測,從視覺的角度考慮(而不是AI的角度),最簡單的辦法是求梯度。
我們知道,邊緣通常是像素值的跳變處,連續狀態時可求導後求梯度,離散狀態下可求差分再求梯度,而圖像的像素值是離散的,因此採用模板卷積求差分的方法求梯度。
尋找邊緣時,可以求一階導數,也可以求二階導數,而梯度方向也有兩方向和八方向等。
這篇番外以一階導數入手講解x,y方向的通過梯度找邊緣的過程,使用Sobel運算元。內容出自:
《計算機視覺教程(第2版)》 章毓晉 人民郵電出版社
邊緣卷積運算元是如何實現梯度求解呢?我們來個簡單的Demo:
我們分別使用x,y方向的Sobel運算元對一個水平方向跳變的圖像矩陣求梯度(一階)
按公式: 可計算得,x方向梯度值為38,y方向梯度值為0。由計算結果得出,在水平方向存在著一條豎直的邊緣,而直接從圖像矩陣中得出的結論亦如此。
下面這張圖出自官方指導:
但求出梯度之後,對於機器來講並沒有得到邊緣。要想得到邊緣還需要經過邊緣的篩選、邊緣的閉合等等。
最後的最後
如果喜歡小林的專欄,就收藏了吧!してください!
推薦閱讀: