0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Canny邊緣檢測(cè)算法可以改進(jìn)的地方做一些討論

Dbwd_Imgtec ? 來源:lq ? 2018-12-22 12:08 ? 次閱讀

傳統(tǒng)的Canny邊緣檢測(cè)算法是一種有效而又相對(duì)簡(jiǎn)單的算法,可以得到很好的結(jié)果。但是Canny算法本身也有一些缺陷,可以有改進(jìn)的地方。

1. Canny邊緣檢測(cè)第一步用高斯模糊來去掉噪聲,但是同時(shí)也會(huì)平滑邊緣,使得邊緣信息減弱,有可能使得在后面的步驟中漏掉一些需要的邊緣,特別是弱邊緣和孤立的邊緣,可能在雙閥值和聯(lián)通計(jì)算中被剔除。很自然地可以預(yù)見,如果加大高斯模糊的半徑,對(duì)噪聲的平滑力度加大,但也會(huì)使得最后得到的邊緣圖中的邊緣明顯減少。這里依然用Lena圖為例,保持Canny算法中高閥值 100 ,低閥值 50 不變,高斯半徑分別為 2,3,5 的Canny邊緣二值圖像如下。可知高斯模糊把很多有用的邊緣信息也模糊掉了,因此如何精確的選擇高斯半徑就相當(dāng)重要。

高斯半徑2

高斯半徑3

高斯半徑5

2. 在最初的Canny算法中是使用的最小的 2 x 2 領(lǐng)域來計(jì)算梯度幅值的。這種方法對(duì)噪聲很敏感,比較容易檢測(cè)到偽邊緣或漏掉真是邊緣。

3. 傳統(tǒng)Canny算法的雙閥值是全局固定的,因此雙閥值大小的選取對(duì)最終的結(jié)果影響很大,也有一些經(jīng)驗(yàn),比如選擇低閥值是高閥值的 0.4 或 0.5 。然而這畢竟是一種經(jīng)驗(yàn)選擇,閥值的確定仍然很難決定一個(gè)最優(yōu)值。而且一個(gè)圖像的不同局部區(qū)域可能需要各不相同的閥值來精確地找到真實(shí)邊緣,因此全局閥值就不太合適了。

4. 傳統(tǒng)算法仍然可能產(chǎn)生一條寬度大于 1 的邊緣,達(dá)不到滿意的高精度單點(diǎn)響應(yīng)。也就是需要繼續(xù)細(xì)化邊緣。

下面就一些可以改進(jìn)的地方做一些討論。

代替高斯模糊

噪聲是高頻信號(hào),邊緣信號(hào)也屬于高頻信號(hào)。既然高斯模糊不加區(qū)分的對(duì)所有的高頻信息進(jìn)行了模糊,效果自然不盡如人意。那么自然就想到了帶有保留邊緣功能的各種選擇性平滑方法,似乎在這里比高斯模糊會(huì)更加合適,那我們就來試一試。帶有保留邊緣功能的平滑方法的基本思想不是讓領(lǐng)域范圍內(nèi)的所有像素都參與該種平滑方法的計(jì)算,而是設(shè)定一個(gè)閥值,僅僅讓和中心像素灰度的差值小于這個(gè)閥值的像素參與計(jì)算。這樣和中心像素相差過大的像素被認(rèn)為是帶有有效的信息,而不是噪聲,不會(huì)參與平滑計(jì)算,從而保留了這些有用的高頻信號(hào),那么邊緣信號(hào)自然也在保留的范圍。具體的算法可以參考這篇文章http://www.cnblogs.com/Imageshop/p/4694540.html,已經(jīng)講得很清楚了。無論是均值平滑,中值平滑,表面模糊,都可以參考這種算法來實(shí)現(xiàn)選擇性模糊。

應(yīng)用有保留邊緣的選擇性模糊來代替高斯模糊后,可以發(fā)現(xiàn),模糊領(lǐng)域的半徑值基本影響不了Canny檢測(cè)的結(jié)果,最后的結(jié)果只跟選擇模糊設(shè)定的閥值有關(guān)。下面以均值模糊為例,Canny檢測(cè)的高閥值 100 低閥值 50 不變,均值模糊閥值 30 ,不同模糊半徑的結(jié)果。在均值模糊閥值不變的情況下,不同領(lǐng)域半徑下,最后的結(jié)果差別不大。

均值模糊半徑2,閥值30

均值模糊半徑5,閥值30

均值模糊半徑15,閥值30

均值模糊半徑5,閥值40

均值模糊半徑5,閥值50

相對(duì)于高斯模糊,在相同半徑下,可以看出應(yīng)用有保留邊緣功能的選擇性模糊,明顯能保留了更多的邊緣細(xì)節(jié),使得很多相對(duì)較弱的邊緣得意保留下來了。我另外還實(shí)驗(yàn)了選擇性的中值模糊,表面模糊,他們和選擇性的均值模糊都能達(dá)到類似的效果。這里就不一一列舉結(jié)果了。其中選擇性的表面模糊,因?yàn)橹行南袼氐臋?quán)重高,最后Canny檢測(cè)結(jié)果在參數(shù)相同的情況下,保留的邊緣相對(duì)較多一些。總的來說,應(yīng)用有保留邊緣功能的選擇性模糊來代替高斯模糊,參數(shù)的選擇(領(lǐng)域半徑和閥值門限)不像高斯模糊半徑參數(shù)選擇那么嚴(yán)格,所以檢測(cè)結(jié)果更穩(wěn)定一些。但是參數(shù)要多了一個(gè)。

梯度算子選擇

對(duì)于算法中梯度的計(jì)算,梯度算子可以有多種選擇。我試了一下,如果用一階梯度算子,Robert交叉算子,他們都是 2 x 2 的算子,來代替Sobel,保持高斯模糊半徑 2,高閥值 100 低閥值 50 不變,結(jié)果如下。要注意的是,由于一階梯度算子和Robert算子都是 2 x 2 的算子,他們算出來的梯度在幅度上都要小于Sobel算子。即使用同樣的高低閥值,最后的結(jié)果也不具有可比性。因此,參照Sobel算子的幅度,2 x 2 算子的 x,y 方向梯度都乘以相應(yīng)地倍數(shù)(4倍),最后進(jìn)行比較。

一階差分Canny二值圖

Robert交叉梯度Canny二值圖

Sobel算子Canny二值圖

可以看到,一階差分最后的結(jié)果在邊緣的連通性上是最差的,Robert算子要好一些,Sobel算子最好。在這幾種選擇當(dāng)中,似乎Sobel算子是最好的選擇。另外還可以使用Prewitt算子和 5 x 5 Sobel算子。Prewitt算子也是 3 x 3 的,僅僅參數(shù)不同,在平滑性能上略微不如Sobel算子。一般來說,比如在Lena圖上,Canny邊緣結(jié)果和用Sobel算子的結(jié)果差別不大。5x5Sobel算子在平滑性能上要更強(qiáng)一些。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4551

    瀏覽量

    92019
  • 邊緣檢測(cè)
    +關(guān)注

    關(guān)注

    0

    文章

    91

    瀏覽量

    18160
  • Canny
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    9692

原文標(biāo)題:Canny邊緣檢測(cè)算法的一些改進(jìn)

文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Canny邊緣檢測(cè)算子的圖像檢索算法

    【摘要】:針對(duì)依賴傳統(tǒng)Canny算子的基于邊緣的圖像檢索系統(tǒng)所存在的不足,提出種基于Canny邊緣檢測(cè)
    發(fā)表于 04-24 10:03

    用DM642開發(fā)板canny邊緣檢測(cè)算法(附CCS源碼

    本帖最后由 mr.pengyongche 于 2013-4-30 02:24 編輯 用DM642開發(fā)板canny邊緣檢測(cè)算法(附CCS源碼),如果需要其他的相關(guān)資料大家
    發(fā)表于 03-31 14:50

    關(guān)于canny算子邊緣檢測(cè)的問題

    本帖最后由 豆吖豆 于 2017-4-4 23:14 編輯 grd=edge(Egray,'canny',0.09,'both');大神門 問下這個(gè)后面的0.09和both什么意思是指的是Egray圖像的上下大小還是,另外可以
    發(fā)表于 04-04 22:27

    圖像邊緣檢測(cè)算法體驗(yàn)步驟(Photoshop,Matlab)

    圖像邊緣檢測(cè)算法體驗(yàn)步驟(Photoshop,Matlab)1. 確定你的電腦上已經(jīng)安裝了Photoshop和Matlab2. 使用手機(jī)或其他任何方式,獲得張彩色圖像(任何格式),建議圖像顏色豐富
    發(fā)表于 03-06 10:51

    基于Qualcomm FastCv的邊緣檢測(cè)算法詳解

    會(huì)引起邊緣強(qiáng)度的損失,增強(qiáng)圖像邊緣可以彌補(bǔ)損失,但增強(qiáng)邊緣和降低噪聲之間需要折衷。在邊緣檢測(cè)算法
    發(fā)表于 09-21 11:45

    基于形態(tài)灰度邊緣檢測(cè)算法改進(jìn)

    使用形態(tài)學(xué)的思想進(jìn)行圖像的邊緣檢測(cè),提出了在次形態(tài)處理中使用雙結(jié)構(gòu)元的系列般性形態(tài)邊緣
    發(fā)表于 04-19 19:26 ?32次下載

    改進(jìn)的數(shù)學(xué)形態(tài)學(xué)邊緣檢測(cè)算法

    針對(duì)傳統(tǒng)數(shù)學(xué)形態(tài)學(xué)邊緣檢測(cè)算法存在的邊緣分辨率較低、低強(qiáng)度邊緣保護(hù)能力較差等問題,提出改進(jìn)
    發(fā)表于 04-23 09:15 ?19次下載

    基于Canny邊緣檢測(cè)算子的圖像檢索算法

      針對(duì)依賴傳統(tǒng)Canny算子的基于邊緣的圖像檢索系統(tǒng)所存在的不足,提出種基于Canny邊緣
    發(fā)表于 02-11 11:22 ?28次下載

    基于Canny算法改進(jìn)Kirsch人臉邊緣檢測(cè)方法

    針對(duì)Kirsch邊緣檢測(cè)算法的不足,提出了種基于Canny算法改進(jìn)的Kirsch人臉
    發(fā)表于 02-23 14:31 ?10次下載

    醫(yī)學(xué)圖像邊緣檢測(cè)算法的研究

    邊緣檢測(cè)是醫(yī)學(xué)圖像處理中非常重要的個(gè)環(huán)節(jié),通過對(duì)幾種經(jīng)典邊緣檢測(cè)算法的分析,提出了種基于
    發(fā)表于 07-05 16:50 ?15次下載

    基于Canny檢測(cè)算法實(shí)現(xiàn)的目標(biāo)跟蹤

    為了設(shè)計(jì)種實(shí)時(shí)高效、穩(wěn)定可靠的圖像目標(biāo)跟蹤系統(tǒng)平臺(tái),避免因圖像邊緣提取效果差而引起跟蹤失敗,采用自適應(yīng)Canny邊緣檢測(cè)算法。該自適應(yīng)
    發(fā)表于 03-05 16:14 ?38次下載
    基于<b class='flag-5'>Canny</b><b class='flag-5'>檢測(cè)算法</b>實(shí)現(xiàn)的目標(biāo)跟蹤

    基于改進(jìn)Canny的圖像邊緣檢測(cè)算法

    圖像邊緣是計(jì)算機(jī)理解圖像的重要特征之。在數(shù)字圖像中,邊緣就是相鄰的具有顯著不同特征區(qū)域間的分界線。在機(jī)器視覺領(lǐng)域,對(duì)邊緣檢測(cè)算法進(jìn)行了深入
    發(fā)表于 11-02 15:15 ?19次下載
    基于<b class='flag-5'>改進(jìn)</b><b class='flag-5'>Canny</b>的圖像<b class='flag-5'>邊緣</b><b class='flag-5'>檢測(cè)算法</b>

    Robinson邊緣檢測(cè)算法

    傳統(tǒng)的Canny邊緣檢測(cè)算子是種含有最優(yōu)化思想的算子,它具有較高的檢測(cè)精度,可以達(dá)到單像素級(jí),
    發(fā)表于 12-01 14:13 ?0次下載

    canny算子的語法原理分析

    Canny算子Canny邊緣檢測(cè)算子是JohnF.Canny于1986年開發(fā)出來的個(gè)多級(jí)
    發(fā)表于 12-18 17:55 ?8768次閱讀
    <b class='flag-5'>canny</b>算子的語法原理分析

    關(guān)于邊緣檢測(cè)算子的實(shí)現(xiàn)原理

    Canny 邊緣檢測(cè)算法 是 John F. Canny 于 1986年開發(fā)出來的個(gè)多級(jí)邊緣
    的頭像 發(fā)表于 01-05 11:41 ?1319次閱讀