什么是邊緣檢測(cè)?Canny邊緣檢測(cè)算法介紹
邊緣檢測(cè)是圖像處理領(lǐng)域的重要話(huà)題,對(duì)于邊緣檢測(cè)問(wèn)題,很多朋友都不是很了解。為增進(jìn)大家對(duì)邊緣檢測(cè)的認(rèn)識(shí),本文將對(duì)邊緣檢測(cè)、Canny邊緣檢測(cè)算法予以介紹。如果你對(duì)邊緣檢測(cè)具有興趣,不妨一起和小編繼續(xù)往下閱讀哦。
一、邊緣檢測(cè)
邊緣檢測(cè)是圖像處理和計(jì)算機(jī)視覺(jué)中的基本問(wèn)題,邊緣檢測(cè)的目的是標(biāo)識(shí)數(shù)字圖像中亮度變化明顯的點(diǎn)。圖像屬性中的顯著變化通常反映了屬性的重要事件和變化。 這些包括(i)深度上的不連續(xù)、(ii)表面方向不連續(xù)、(iii)物質(zhì)屬性變化和(iv)場(chǎng)景照明變化。 邊緣檢測(cè)是圖像處理和計(jì)算機(jī)視覺(jué)中,尤其是特征提取中的一個(gè)研究領(lǐng)域。
圖像邊緣檢測(cè)大幅度地減少了數(shù)據(jù)量,并且剔除了可以認(rèn)為不相關(guān)的信息,保留了圖像重要的結(jié)構(gòu)屬性。有許多方法用于邊緣檢測(cè),它們的絕大部分可以劃分為兩類(lèi):基于查找一類(lèi)和基于零穿越的一類(lèi)?;诓檎业姆椒ㄍㄟ^(guò)尋找圖像一階導(dǎo)數(shù)中的最大和最小值來(lái)檢測(cè)邊界,通常是將邊界定位在梯度最大的方向?;诹愦┰降姆椒ㄍㄟ^(guò)尋找圖像二階導(dǎo)數(shù)零穿越來(lái)尋找邊界,通常是Laplacian過(guò)零點(diǎn)或者非線(xiàn)性差分表示的過(guò)零點(diǎn)。
邊緣可能與視角有關(guān)—— 也就是說(shuō)邊緣可能隨著視角不同而變化,典型地反映在場(chǎng)景、物體的幾何形狀一個(gè)將另一個(gè)遮擋起來(lái),也可能與視角無(wú)關(guān)——這通常反映被觀察物體的屬性如表面紋理和表面形狀。在二維乃至更高維空間中,需要考慮透視投影的影響。
一個(gè)典型的邊界可能是,例如一塊紅色和一塊黃色之間的邊界,與此相反的是邊線(xiàn)可能是在另外一種不變的背景上的少數(shù)不同顏色的點(diǎn)。在邊線(xiàn)的每一邊都有一個(gè)邊緣。在許多圖像處理的應(yīng)用中邊緣都起著非常重要的作用。然而,在最近幾年,不明顯依賴(lài)于邊緣檢測(cè)作為預(yù)處理的計(jì)算機(jī)視覺(jué)處理方法研究取得了一些實(shí)質(zhì)性的研究成果。
二、Canny邊緣檢測(cè)算法
1983年,John Canny在麻省理工學(xué)院發(fā)明了Canny邊緣檢測(cè)。它將邊緣檢測(cè)視為一個(gè)信號(hào)處理問(wèn)題。其核心思想是,如果你觀察圖像中每個(gè)像素的強(qiáng)度變化,它在邊緣的時(shí)候非常高。
在下面這張簡(jiǎn)單的圖片中,強(qiáng)度變化只發(fā)生在邊界上。所以,你可以很容易地通過(guò)觀察像素強(qiáng)度的變化來(lái)識(shí)別邊緣。
現(xiàn)在,看下這張圖片。強(qiáng)度不是恒定的,但強(qiáng)度的變化率在邊緣處最高。(微積分復(fù)習(xí):變化率可以用一階導(dǎo)數(shù)(梯度)來(lái)計(jì)算。)
Canny邊緣檢測(cè)器通過(guò)4步來(lái)識(shí)別邊緣:
去噪:因?yàn)檫@種方法依賴(lài)于強(qiáng)度的突然變化,如果圖像有很多隨機(jī)噪聲,那么會(huì)將噪聲作為邊緣。所以,使用5×5的高斯濾波器平滑你的圖像是一個(gè)非常好的主意。
梯度計(jì)算:下一步,我們計(jì)算圖像中每個(gè)像素的強(qiáng)度的梯度(強(qiáng)度變化率)。我們也計(jì)算梯度的方向。
梯度方向垂直于邊緣,它被映射到四個(gè)方向中的一個(gè)(水平、垂直和兩個(gè)對(duì)角線(xiàn)方向)。
非極大值抑制:現(xiàn)在,我們想刪除不是邊緣的像素(設(shè)置它們的值為0)。你可能會(huì)說(shuō),我們可以簡(jiǎn)單地選取梯度值最高的像素,這些就是我們的邊。然而,在真實(shí)的圖像中,梯度不是簡(jiǎn)單地在只一個(gè)像素處達(dá)到峰值,而是在臨近邊緣的像素處都非常高。因此我們?cè)谔荻确较蛏先?×3附近的局部最大值。
遲滯閾值化:在下一步中,我們需要決定一個(gè)梯度的閾值,低于這個(gè)閾值所有的像素都將被抑制(設(shè)置為0)。而Canny邊緣檢測(cè)器則采用遲滯閾值法。遲滯閾值法是一種非常簡(jiǎn)單而有效的方法。我們使用兩個(gè)閾值來(lái)代替只用一個(gè)閾值:
高閾值 = 選擇一個(gè)非常高的值,這樣任何梯度值高于這個(gè)值的像素都肯定是一個(gè)邊緣。
低閾值 = 選擇一個(gè)非常低的值,任何梯度值低于該值的像素絕對(duì)不是邊緣。
在這兩個(gè)閾值之間有梯度的像素會(huì)被檢查,如果它們和邊緣相連,就會(huì)留下,否則就會(huì)去掉。
遲滯閾值化
Canny 邊緣檢測(cè)的問(wèn)題:
由于Canny邊緣檢測(cè)器只關(guān)注局部變化,沒(méi)有語(yǔ)義(理解圖像的內(nèi)容)理解,精度有限(很多時(shí)候是這樣)。
Canny邊緣檢測(cè)器在這種情況下會(huì)失敗,因?yàn)闆](méi)有理解圖像的上下文
語(yǔ)義理解對(duì)于邊緣檢測(cè)是至關(guān)重要的,這就是為什么使用機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的基于學(xué)習(xí)的檢測(cè)器比canny邊緣檢測(cè)器產(chǎn)生更好的結(jié)果。
以上便是此次小編帶來(lái)的檢測(cè)相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)邊緣檢測(cè)具備一定的認(rèn)知。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!