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

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

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

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

電子設(shè)計(jì) ? 來源:山西電子技術(shù) ? 作者:田秀榮 ? 2020-08-06 09:12 ? 次閱讀

引言

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

1 Carmy算子的基本原理

1.1 平滑圖像

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

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

式中:σ為高斯曲線標(biāo)準(zhǔn)差,控制著平滑程度。

1.2 計(jì)算梯度的幅值和方向

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

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

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

1.3 獲取邊緣

為了提取單像素寬邊緣,必須細(xì)化梯度幅值圖。在梯度幅值圖像中,M[i,j]的極大值所在位置附近會產(chǎn)生屋脊帶,只有細(xì)化這些屋脊帶才能精確地確定邊緣的位置,僅保留幅值局部變化最大的點(diǎn),這一過程叫做非極大值抑制。在非極大值抑制過程中,Canny算子使用3×3大小,包含8個方向的鄰域?qū)μ荻确店嚵蠱[i,j]的所有像素沿梯度方向進(jìn)行梯度幅值的插值,在每一個點(diǎn)上,鄰域的中心像素M[i,j]與沿梯度方向的2個梯度幅值的插值結(jié)果進(jìn)行比較,如果鄰域中心點(diǎn)的幅值M[i,j]不比梯度方向上的2個插值結(jié)果大,則將M[i,j]對應(yīng)的邊緣標(biāo)志位賦值為0,這一過程把M[i.j]寬屋脊帶細(xì)化為一個像素寬,并且保留了屋脊的梯度幅值。

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

1.4 輪廓跟蹤或輪廓提取

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

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

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

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

2 實(shí)驗(yàn)結(jié)果對比

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

3 結(jié)果分析

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

責(zé)任編輯:gt

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

    關(guān)注

    9

    文章

    518

    瀏覽量

    38216
  • 檢測
    +關(guān)注

    關(guān)注

    5

    文章

    4419

    瀏覽量

    91314
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4286

    瀏覽量

    62336
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    基于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源碼),如果需要其他的相關(guān)資料大家可以向我要,我會將更多圖像處理的資料上傳
    發(fā)表于 03-31 14:50

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    canny邊緣檢測

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

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

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

    Robinson邊緣檢測算法

    傳統(tǒng)的Canny邊緣檢測算子是一種含有最優(yōu)化思想的算子,它具有較高的檢測精度,可以達(dá)到單像素級,但是因?yàn)樗旧韺υ肼暠容^敏感,所以需要先利用Gauss濾波、均值濾波、中值濾波等濾波器進(jìn)
    發(fā)表于 12-01 14:13 ?0次下載

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

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