什么是 Canny 邊緣檢測(cè)算法?
點(diǎn)擊上方“小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
Canny 邊緣檢測(cè)器是一種多步算法,用于檢測(cè)任何輸入圖像的邊緣。它涉及在檢測(cè)圖像邊緣時(shí)要遵循的以下步驟。
在深入研究以下步驟之前,是推導(dǎo)出該算法的 JK Canny 得出的三個(gè)結(jié)論:
-良好的檢測(cè):最佳檢測(cè)器必須消除出現(xiàn)誤報(bào)和漏報(bào)的可能性。
-良好的定位:檢測(cè)到的邊緣必須盡可能接近真實(shí)邊緣。
-單響應(yīng)約束:檢測(cè)器必須只為每個(gè)邊緣點(diǎn)返回一個(gè)點(diǎn)。
降噪或圖像平滑:
在存在噪聲期間,像素可能與其相鄰像素不接近。這可能導(dǎo)致獲得不適當(dāng)或不適當(dāng)?shù)倪吘墮z測(cè)。為了避免同樣的情況,我們使用高斯濾波器,它與圖像卷積并去除噪聲,防止輸出圖像中出現(xiàn)所需的邊緣。
在下面的示例中,我們將高斯濾波器或核 g(x,y) 與圖像 I 進(jìn)行卷積。在這里,我們希望確保任何給定的像素必須與輸出中的相鄰像素相似,因此我們使用矩陣 [1 1 1] 保持像素之間的相似性并去除噪聲。


g(x,y)= 高斯分布
I = 輸入圖像
衍生品:
計(jì)算濾波器對(duì) X 和 Y 維度的導(dǎo)數(shù),并將其與 I 卷積以給出沿維度的梯度幅度。此外,可以使用兩個(gè)維度之間的角度的正切來(lái)計(jì)算圖像的方向。

上述卷積產(chǎn)生具有大小和方向的梯度向量。

下面是一個(gè)高斯導(dǎo)數(shù)的例子,它最終有助于輸出圖像中的邊緣。

沿著邊緣,通常觀察到很少有點(diǎn)使邊緣的可見(jiàn)性更清晰。所以我們可以忽略那些對(duì)特征可見(jiàn)性貢獻(xiàn)不大的邊緣點(diǎn)。為了達(dá)到同樣的目的,我們使用非最大抑制方法。這里我們標(biāo)記邊緣曲線上幅度最大的點(diǎn)。這可以通過(guò)尋找最大值以及與曲線垂直的切片來(lái)獲得。
考慮下圖中的邊緣,它具有三個(gè)邊緣點(diǎn)。假設(shè)點(diǎn) (x,y) 為具有最大邊緣梯度的點(diǎn)。檢查垂直于邊緣方向的邊緣點(diǎn),并驗(yàn)證它們的梯度是否小于 (x,y)。如果這些值小于 (x,y) 梯度,那么我們可以抑制曲線上的那些非最大值點(diǎn)。



如果一個(gè)像素的梯度是:
迭代地考慮它的鄰居,如果它連接到“邊緣像素”或通過(guò)“低”和“高”之間的像素連接,則將其聲明為“邊緣像素”。
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱(chēng)+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

