什么是 Canny 邊緣檢測算法?
極市導(dǎo)讀
Canny 邊緣檢測器是一種多步算法,用于檢測任何輸入圖像的邊緣。本文介紹了在Canny算法過程中需要遵循的步驟、非最大抑制以及滯后閾值。>>加入極市CV技術(shù)交流群,走在計算機(jī)視覺的最前沿
一、簡介
Canny 邊緣檢測器是一種多步算法,用于檢測任何輸入圖像的邊緣。它涉及在檢測圖像邊緣時要遵循的以下步驟。
1. 使用高斯濾波器去除輸入圖像中的噪聲。
2.計算高斯濾波器的導(dǎo)數(shù),計算圖像像素的梯度,得到沿x和y維度的幅度。
3. 考慮垂直于給定邊緣方向的任何曲線的一組鄰居,抑制非最大邊緣貢獻(xiàn)像素點。
4. 最后,使用滯后閾值方法保留高于梯度幅值的像素,忽略低于低閾值的像素。
在深入研究以下步驟之前,是推導(dǎo)出該算法的 JK Canny 得出的三個結(jié)論:
-良好的檢測:最佳檢測器必須消除出現(xiàn)誤報和漏報的可能性。
-良好的定位:檢測到的邊緣必須盡可能接近真實邊緣。
-單響應(yīng)約束:檢測器必須只為每個邊緣點返回一個點。
二、在Canny算法過程中需要遵循的步驟
降噪或圖像平滑:
在存在噪聲期間,像素可能與其相鄰像素不接近。這可能導(dǎo)致獲得不適當(dāng)或不適當(dāng)?shù)倪吘墮z測。為了避免同樣的情況,我們使用高斯濾波器,它與圖像卷積并去除噪聲,防止輸出圖像中出現(xiàn)所需的邊緣。
在下面的示例中,我們將高斯濾波器或核 g(x,y) 與圖像 I 進(jìn)行卷積。在這里,我們希望確保任何給定的像素必須與輸出中的相鄰像素相似,因此我們使用矩陣 [1 1 1] 保持像素之間的相似性并去除噪聲。
g(x,y)= 高斯分布
I = 輸入圖像
衍生品:
計算濾波器對 X 和 Y 維度的導(dǎo)數(shù),并將其與 I 卷積以給出沿維度的梯度幅度。此外,可以使用兩個維度之間的角度的正切來計算圖像的方向。
上述卷積產(chǎn)生具有大小和方向的梯度向量。
下面是一個高斯導(dǎo)數(shù)的例子,它最終有助于輸出圖像中的邊緣。
三、非最大抑制
沿著邊緣,通常觀察到很少有點使邊緣的可見性更清晰。所以我們可以忽略那些對特征可見性貢獻(xiàn)不大的邊緣點。為了達(dá)到同樣的目的,我們使用非最大抑制方法。這里我們標(biāo)記邊緣曲線上幅度最大的點。這可以通過尋找最大值以及與曲線垂直的切片來獲得。
考慮下圖中的邊緣,它具有三個邊緣點。假設(shè)點 (x,y) 為具有最大邊緣梯度的點。檢查垂直于邊緣方向的邊緣點,并驗證它們的梯度是否小于 (x,y)。如果這些值小于 (x,y) 梯度,那么我們可以抑制曲線上的那些非最大值點。
四、滯后閾值
五、總結(jié)
如果一個像素的梯度是:
- 在“高”上方將其聲明為“邊緣像素”。
- 下面,“低”將其聲明為“非邊緣像素”。
- 在“低”和“高”之間。
迭代地考慮它的鄰居,如果它連接到“邊緣像素”或通過“低”和“高”之間的像素連接,則將其聲明為“邊緣像素”。
如果覺得有用,就請分享到朋友圈吧!
公眾號后臺回復(fù)“79”獲取CVPR 2021:TransT 直播鏈接~
# CV技術(shù)社群邀請函 #
備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)
即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~
