RM新时代网站-首页

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Canny邊緣檢測算法可以改進的地方做一些討論

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

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

1. Canny邊緣檢測第一步用高斯模糊來去掉噪聲,但是同時也會平滑邊緣,使得邊緣信息減弱,有可能使得在后面的步驟中漏掉一些需要的邊緣,特別是弱邊緣和孤立的邊緣,可能在雙閥值和聯通計算中被剔除。很自然地可以預見,如果加大高斯模糊的半徑,對噪聲的平滑力度加大,但也會使得最后得到的邊緣圖中的邊緣明顯減少。這里依然用Lena圖為例,保持Canny算法中高閥值 100 ,低閥值 50 不變,高斯半徑分別為 2,3,5 的Canny邊緣二值圖像如下??芍咚鼓:押芏嘤杏玫倪吘壭畔⒁材:袅?,因此如何精確的選擇高斯半徑就相當重要。

高斯半徑2

高斯半徑3

高斯半徑5

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

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

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

下面就一些可以改進的地方做一些討論。

代替高斯模糊

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

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

均值模糊半徑2,閥值30

均值模糊半徑5,閥值30

均值模糊半徑15,閥值30

均值模糊半徑5,閥值40

均值模糊半徑5,閥值50

相對于高斯模糊,在相同半徑下,可以看出應用有保留邊緣功能的選擇性模糊,明顯能保留了更多的邊緣細節(jié),使得很多相對較弱的邊緣得意保留下來了。我另外還實驗了選擇性的中值模糊,表面模糊,他們和選擇性的均值模糊都能達到類似的效果。這里就不一一列舉結果了。其中選擇性的表面模糊,因為中心像素的權重高,最后Canny檢測結果在參數相同的情況下,保留的邊緣相對較多一些??偟膩碚f,應用有保留邊緣功能的選擇性模糊來代替高斯模糊,參數的選擇(領域半徑和閥值門限)不像高斯模糊半徑參數選擇那么嚴格,所以檢測結果更穩(wěn)定一些。但是參數要多了一個。

梯度算子選擇

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

一階差分Canny二值圖

Robert交叉梯度Canny二值圖

Sobel算子Canny二值圖

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4607

    瀏覽量

    92828
  • 邊緣檢測
    +關注

    關注

    0

    文章

    92

    瀏覽量

    18204
  • Canny
    +關注

    關注

    0

    文章

    14

    瀏覽量

    9708

原文標題:Canny邊緣檢測算法的一些改進

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于Canny邊緣檢測算子的圖像檢索算法

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

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

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

    關于canny算子邊緣檢測的問題

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

    圖像邊緣檢測算法體驗步驟(Photoshop,Matlab)

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

    基于Qualcomm FastCv的邊緣檢測算法詳解

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

    基于形態(tài)灰度邊緣檢測算法改進

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

    改進的數學形態(tài)學邊緣檢測算法

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

    基于Canny邊緣檢測算子的圖像檢索算法

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

    基于Canny算法改進Kirsch人臉邊緣檢測方法

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

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

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

    基于Canny檢測算法實現的目標跟蹤

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

    基于改進Canny的圖像邊緣檢測算法

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

    Robinson邊緣檢測算法

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

    canny算子的語法原理分析

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

    關于邊緣檢測算子的實現原理

    Canny 邊緣檢測算法 是 John F. Canny 于 1986年開發(fā)出來的個多級邊緣
    的頭像 發(fā)表于 01-05 11:41 ?1433次閱讀
    RM新时代网站-首页