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

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

3天內不再提示

基于canny邊緣檢測算法有效解決檢測邊緣斷裂問題

電子設計 ? 來源:山西電子技術 ? 作者:田秀榮 ? 2020-08-06 09:12 ? 次閱讀

引言

邊緣檢測是圖像處理中的重要內容。圖像邊緣是圖像局部特性不連續(xù)性(灰度突變、顏色突變、紋理結構突變等)的反映,它標志著一個區(qū)域的終結和另一個區(qū)域的開始。在實際圖像處理問題中,圖像的邊緣作為圖像的一種基本特征,經常被應用到較高層次的圖像應用中去,同時它在圖像識別、圖像分割、圖像增強以及圖像壓縮等領域中有較為廣泛的應用。圖像邊緣檢測的手段多種多樣,大的框架有兩種,一是傳統(tǒng)的基于邊緣檢測算子的檢測方法;另外一種是基于小波的多尺度邊緣測算法。然而小波變換在用于處理圖像時并不是最佳的,因為基于小波變換的圖像邊緣檢測方法提取的邊緣只具有有限的方向,而自然圖像邊緣的方向可能是任意的,因而小波邊緣提取方法提取的邊緣不能最佳地逼近圖像邊緣;傳統(tǒng)的Robert、Sobel、Prewitt、Kirach和Laplacian算子對噪聲較為敏感,在處理實際圖像中效果并不理想。通過研究,本文提出了一種基于canny邊緣檢測算法,結合輪廓跟蹤的方法,在物體邊緣得到增強、對比度得到改善、噪聲得到有效抑制的同時,很好地解決了使用傳統(tǒng)的邊緣檢測算子在邊緣檢測過程中帶來的檢測邊緣斷裂的問題,從而能夠保證檢測到的邊緣連續(xù)、單一、清晰,是一種實用的圖像處理方法。最后把改進后的算法應用到實際醫(yī)學圖像邊緣檢測中,并與傳統(tǒng)邊緣檢測算子的檢測效果比較,從而得出結論。

1 Carmy算子的基本原理

1.1 平滑圖像

Canny算子選用合適的一維高斯函數,分別按行和列對圖像f(x,y)進行平滑去噪,這相當于對圖像信號的卷積。所選的高斯函數為:

基于canny邊緣檢測算法有效解決檢測邊緣斷裂問題

式中:σ為高斯曲線標準差,控制著平滑程度。

1.2 計算梯度的幅值和方向

Canny算子采用2×2鄰域一階偏導的有限差分來計算平滑后的數據陣列I(x,y)的梯度幅值和梯度方向。x和y方向偏導數的2個陣列Px[i,j]和Py[i,j]分別為:

基于canny邊緣檢測算法有效解決檢測邊緣斷裂問題

像素的梯度幅值和梯度方向分別為:

1.3 獲取邊緣

為了提取單像素寬邊緣,必須細化梯度幅值圖。在梯度幅值圖像中,M[i,j]的極大值所在位置附近會產生屋脊帶,只有細化這些屋脊帶才能精確地確定邊緣的位置,僅保留幅值局部變化最大的點,這一過程叫做非極大值抑制。在非極大值抑制過程中,Canny算子使用3×3大小,包含8個方向的鄰域對梯度幅值陣列M[i,j]的所有像素沿梯度方向進行梯度幅值的插值,在每一個點上,鄰域的中心像素M[i,j]與沿梯度方向的2個梯度幅值的插值結果進行比較,如果鄰域中心點的幅值M[i,j]不比梯度方向上的2個插值結果大,則將M[i,j]對應的邊緣標志位賦值為0,這一過程把M[i.j]寬屋脊帶細化為一個像素寬,并且保留了屋脊的梯度幅值。

對經過非極大值抑制和梯度直方圖分類的子圖像N[i,j]分別使用高、低2個閾值thrA和thrl,將梯度小于閾值的像素灰度置為0,分割得到2個閾值邊緣圖像TH[i,j]和TL[i,j]。由于圖像TH[i,j]是由高閾值得到,因此偽邊緣很少,但TL[i,j]保留邊緣信息較為全面,但也含有一些偽邊緣。因此以圖像TH[i,j]為基礎,圖像TL[i,j]為補充獲得相對較為全面的邊緣。

1.4 輪廓跟蹤或輪廓提取

在對圖像進行canny邊緣檢測后,可能會出現某些檢測邊緣斷裂、不連續(xù)的現象,為了解決這個問題,使獲得的目標檢測物體的邊緣能夠連續(xù)并且去除多余的偽邊緣,在邊緣檢測后,再對圖像進行邊界跟蹤,便可使這一問題得以很好地改善。

對于二值圖像,輪廓提取的基本方法是掏空內部點,即如果原圖像中有一點為黑,且其他相鄰的8個點都為黑,則將該點刪除。

本文借鑒二值圖像輪廓跟蹤方法,即將每一點與其相鄰的8個點作比較。具體方法為:(1)先找到第一個邊界像素。按從左到右、從下到上的順序搜索,找到的第一個白點一定是最左下方的邊界點,記為A0,它的右、右上、上、左上四個相鄰點中至少有一個是邊界點,記為B0,從B0開始找起,按右、右上、上、左上、左、左下、下、右下的順序找8個相鄰點中的邊界點C0,如果C0就是A0點,則表明已經轉了一

圈,結束;否則從C0點繼續(xù)找,直到找到A0為止;(2)判斷是否邊界點:如果它的8個相鄰點都不是白點,則它即為邊界點。對于邊界跟蹤來說,跟蹤后產生的輪廓邊緣寬度只有一個像素,實現了邊緣像素點單一、清晰,并很好地去除了偽邊緣點。

2 實驗結果對比

為驗證本文算法,以醫(yī)學圖像為例,與傳統(tǒng)邊緣檢測算子進行對比,實驗表明,本文提出的方法具有很好的邊緣檢測效果,對比結果如圖1~圖5。

3 結果分析

本文采用將圖像先進行Canny邊緣檢測,再進行輪廓跟蹤的處理方法,一方面能夠解決傳統(tǒng)邊緣檢測算法所帶來的邊緣斷裂問題,而且易于理解和實現,具有較好的檢測效果。但另一方面,對圖像分別進行兩次處理,降低了圖像處理的效率,在實時處理要求較高的應用環(huán)境,此算法還需進一步改進。

責任編輯:gt

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

    關注

    9

    文章

    520

    瀏覽量

    38290
  • 檢測
    +關注

    關注

    5

    文章

    4496

    瀏覽量

    91543
  • 函數
    +關注

    關注

    3

    文章

    4337

    瀏覽量

    62730
收藏 人收藏

    評論

    相關推薦

    Canny雙閾值邊緣檢測和弱邊緣連接詳解

    在上一篇FPGA圖像處理--Canny邊緣檢測(一)里介紹了Canny邊緣檢測的NMS計算,這里
    的頭像 發(fā)表于 11-18 17:07 ?2706次閱讀

    基于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

    求Matlab圖像自編邊緣檢測算法

    求Matlab圖像自編邊緣檢測算法,多謝了
    發(fā)表于 12-03 20:58

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

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

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

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

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

    微分邊緣檢測算法主要是基于圖像強度的一階和二階導數,而導數的計算對噪聲很敏感,噪聲的存在可能會使檢測到的邊緣變寬或在某些點處發(fā)生間斷,因此,需要使用濾波器來濾掉噪聲。大多數濾波器在降低
    發(fā)表于 09-21 11:45

    基于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é),通過對幾種經典邊緣檢測算法的分析,提出了一種基于Canny算子的改進
    發(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邊緣檢測

    《OpenCV3編程入門》書本配套源代碼canny邊緣檢測
    發(fā)表于 06-06 15:20 ?2次下載

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

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

    Robinson邊緣檢測算法

    傳統(tǒng)的Canny邊緣檢測算子是一種含有最優(yōu)化思想的算子,它具有較高的檢測精度,可以達到單像素級,但是因為它本身對噪聲比較敏感,所以需要先利用Gauss濾波、均值濾波、中值濾波等濾波器進
    發(fā)表于 12-01 14:13 ?0次下載

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

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