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

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

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

圖像處理和計(jì)算機(jī)視覺中常用邊緣檢測(cè)算法的研究

電子設(shè)計(jì) ? 來源:電子工程網(wǎng) ? 作者:電子工程網(wǎng) ? 2021-03-19 09:06 ? 次閱讀

邊緣檢測(cè)是圖像處理和計(jì)算機(jī)視覺中的基本問題,邊緣檢測(cè)的目的是標(biāo)識(shí)數(shù)字圖像中亮度變化明顯的點(diǎn)。圖像邊緣檢測(cè)大幅度地減少了數(shù)據(jù)量,并且剔除了可以認(rèn)為不相關(guān)的信息,保留了圖像重要的結(jié)構(gòu)屬性。有許多方法用于邊緣檢測(cè),它們的絕大部分可以劃分為兩類:基于查找一類和基于零穿越的一類?;诓檎业姆椒ㄍㄟ^尋找圖像一階導(dǎo)數(shù)中的最大和最小值來檢測(cè)邊界,通常是將邊界定位在梯度最大的方向?;诹愦┰降姆椒ㄍㄟ^尋找圖像二階導(dǎo)數(shù)零穿越來尋找邊界,通常是Laplacian過零點(diǎn)或者非線性差分表示的過零點(diǎn)。

邊緣檢測(cè)算子:

一階:Roberts Cross算子, Prewitt算子, Sobel算子, Canny算子,羅盤算子;

二階: Marr-Hildreth,在梯度方向的二階導(dǎo)數(shù)過零點(diǎn),Canny算子,Laplacian算子。

Roberts邊緣檢測(cè)

羅伯茨算子、Roberts算子是一種最簡(jiǎn)單的算子,是一種利用局部差分算子尋找邊緣的算子,它采用對(duì)角線方向相鄰兩象素之差近似梯度幅值檢測(cè)邊緣。檢測(cè)垂直邊緣的效果好于斜向邊緣,定位精度高,對(duì)噪聲敏感,無法抑制噪聲的影響。1963年,Roberts提出了這種尋找邊緣的算子。

Roberts算子是一種利用局部差分算子尋找邊緣的算子, 它由下式給出:

其中,

分別為4領(lǐng)域的坐標(biāo),且是具有整數(shù)像素坐標(biāo)的輸入圖像。

Roberts算子是2 X 2算子模板。下圖所示的2個(gè)卷積核形成了Roberts算子。圖象中的每一個(gè)點(diǎn)都用這2個(gè)核做卷積。

圖像處理和計(jì)算機(jī)視覺中常用邊緣檢測(cè)算法的研究

Roberts邊緣算子是一個(gè)2x2的模板,采用的是對(duì)角方向相鄰的兩個(gè)像素之差。從圖像處理的實(shí)際效果來看,邊緣定位較準(zhǔn),對(duì)噪聲敏感。適用于邊緣明顯且噪聲較少的圖像分割。Roberts邊緣檢測(cè)算子是一種利用局部差分算子尋找邊緣的算子,Robert算子圖像處理后結(jié)果邊緣不是很平滑。經(jīng)分析,由于Robert算子通常會(huì)在圖像邊緣附近的區(qū)域內(nèi)產(chǎn)生較寬的響應(yīng),故采用上述算子檢測(cè)的邊緣圖像常需做細(xì)化處理,邊緣定位的精度不是很高。

Sobel邊緣檢測(cè)算法

索貝爾算子(Sobel operator)主要用作邊緣檢測(cè),在技術(shù)上,它是一離散性差分算子,用來運(yùn)算圖像亮度函數(shù)的灰度之近似值。在圖像的任何一點(diǎn)使用此算子,將會(huì)產(chǎn)生對(duì)應(yīng)的灰度矢量或是其法矢量。

Sobel卷積因子為:

該算子包含兩組3x3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。如果以A代表原始圖像,Gx及Gy分別代表經(jīng)橫向及縱向邊緣檢測(cè)的圖像灰度值,其公式如下:

具體計(jì)算如下:

Gx = (-1)*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)

+(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y)

+(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)

= [f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]

Gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1)

+0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y)

+(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)

= [f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)]-[f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)]

其中f(a,b), 表示圖像(a,b)點(diǎn)的灰度值;

圖像的每一個(gè)像素的橫向及縱向灰度值通過以下公式結(jié)合,來計(jì)算該點(diǎn)灰度的大?。?/p>

通常,為了提高效率使用不開平方的近似值:

如果梯度G大于某一閥值 則認(rèn)為該點(diǎn)(x,y)為邊緣點(diǎn)。

然后可用以下公式計(jì)算梯度方向:

Sobel算子根據(jù)像素點(diǎn)上下、左右鄰點(diǎn)灰度加權(quán)差,在邊緣處達(dá)到極值這一現(xiàn)象檢測(cè)邊緣。對(duì)噪聲具有平滑作用,提供較為精確的邊緣方向信息,邊緣定位精度不夠高。當(dāng)對(duì)精度要求不是很高時(shí),是一種較為常用的邊緣檢測(cè)方法。

Sobel算子相關(guān)代碼及Sobel邊緣檢測(cè)效果

Sobel算子并沒有將圖像的主題與背景嚴(yán)格地區(qū)分開來,換言之就是Sobel算子并沒有基于圖像灰度進(jìn)行處理,由于Sobel算子并沒有嚴(yán)格地模擬人的視覺生理特征,所以提取的圖像輪廓有時(shí)并不能令人滿意。

Isotropic Sobel算子

Sobel算子另一種形式是(Isotropic Sobel)算子,加權(quán)平均算子,權(quán)值反比于鄰點(diǎn)與中心點(diǎn)的距離,當(dāng)沿不同方向檢測(cè)邊緣時(shí)梯度幅度一致,就是通常所說的各向同性Sobel(Isotropic Sobel)算子。模板也有兩個(gè),一個(gè)是檢測(cè)水平邊沿的 ,另一個(gè)是檢測(cè)垂直平邊沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權(quán)系數(shù)更為準(zhǔn)確,在檢測(cè)不同方向的邊沿時(shí)梯度的幅度一致。

Prewitt邊緣檢測(cè)算法

Prewitt算子是一種一階微分算子的邊緣檢測(cè),利用像素點(diǎn)上下、左右鄰點(diǎn)的灰度差,在邊緣處達(dá)到極值檢測(cè)邊緣,去掉部分偽邊緣,對(duì)噪聲具有平滑作用 。其原理是在圖像空間利用兩個(gè)方向模板與圖像進(jìn)行鄰域卷積來完成的,這兩個(gè)方向模板一個(gè)檢測(cè)水平邊緣,一個(gè)檢測(cè)垂直邊緣。

它的卷積因子如下:

對(duì)數(shù)字圖像f(x,y),Prewitt算子的定義如下:

G(i)=|[f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)]-[f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)]|

G(j)=|[f(i-1,j+1)+f(i,j+1)+f(i+1,j+1)]-[f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)]|

則 P(i,j)=max[G(i),G(j)]或 P(i,j)=G(i)+G(j)

經(jīng)典Prewitt算子認(rèn)為:凡灰度新值大于或等于閾值的像素點(diǎn)都是邊緣點(diǎn)。即選擇適當(dāng)?shù)拈撝礣,若P(i,j)≥T,則(i,j)為邊緣點(diǎn),P(i,j)為邊緣圖像。這種判定是欠合理的,會(huì)造成邊緣點(diǎn)的誤判,因?yàn)樵S多噪聲點(diǎn)的灰度值也很大,而且對(duì)于幅值較小的邊緣點(diǎn),其邊緣反而丟失了。

Prewitt算子對(duì)噪聲有抑制作用,抑制噪聲的原理是通過像素平均,但是像素平均相當(dāng)于對(duì)圖像的低通濾波,所以Prewitt算子對(duì)邊緣的定位不如Roberts算子。

因?yàn)槠骄軠p少或消除噪聲,Prewitt梯度算子法就是先求平均,再求差分來求梯度。

該算子與Sobel算子類似,只是權(quán)值有所變化,但兩者實(shí)現(xiàn)起來功能還是有差距的,據(jù)經(jīng)驗(yàn)得知Sobel要比Prewitt更能準(zhǔn)確檢測(cè)圖像邊緣。

Canny邊緣檢測(cè)算法

該算子功能比前面幾種都要好,但是它實(shí)現(xiàn)起來較為麻煩,Canny算子是一個(gè)具有濾波,增強(qiáng),檢測(cè)的多階段的優(yōu)化算子,在進(jìn)行處理前,Canny算子先利用高斯平滑濾波器來平滑圖像以除去噪聲,Canny分割算法采用一階偏導(dǎo)的有限差分來計(jì)算梯度幅值和方向,在處理過程中,Canny算子還將經(jīng)過一個(gè)非極大值抑制的過程,最后Canny算子還采用兩個(gè)閾值來連接邊緣。

1.Canny邊緣檢測(cè)基本原理

(1)圖象邊緣檢測(cè)必須滿足兩個(gè)條件:一能有效地抑制噪聲;二必須盡量精確確定邊緣的位置。

(2)根據(jù)對(duì)信噪比與定位乘積進(jìn)行測(cè)度,得到最優(yōu)化逼近算子。這就是Canny邊緣檢測(cè)算子。

(3)類似與Marr(LoG)邊緣檢測(cè)方法,也屬于先平滑后求導(dǎo)數(shù)的方法。

2.Canny邊緣檢測(cè)算法:

step1:用高斯濾波器平滑圖象;

step2:用一階偏導(dǎo)的有限差分來計(jì)算梯度的幅值和方向;

step3:對(duì)梯度幅值進(jìn)行非極大值抑制;

step4:用雙閾值算法檢測(cè)和連接邊緣。

Canny算子相關(guān)代碼及Canny邊緣檢測(cè)效果

Laplace邊緣檢測(cè)算法

Laplace算子是一種各向同性算子,二階微分算子,在只關(guān)心邊緣的位置而不考慮其周圍的象素灰度差值時(shí)比較合適。Laplace算子對(duì)孤立象素的響應(yīng)要比對(duì)邊緣或線的響應(yīng)要更強(qiáng)烈,因此只適用于無噪聲圖象。存在噪聲情況下,使用Laplacian算子檢測(cè)邊緣之前需要先進(jìn)行低通濾波。所以,通常的分割算法都是把Laplacian算子和平滑算子結(jié)合起來生成一個(gè)新的模板。

拉普拉斯算子也是最簡(jiǎn)單的各向同性微分算子,具有旋轉(zhuǎn)不變性。一個(gè)二維圖像函數(shù)的拉普拉斯變換是各向同性的二階導(dǎo)數(shù),定義

為了更適合于數(shù)字圖像處理,將拉式算子表示為離散形式:

另外,拉普拉斯算子還可以表示成模板的形式,如下圖所示,

拉式算子用來改善因擴(kuò)散效應(yīng)的模糊特別有效,因?yàn)樗辖抵颇P?。擴(kuò)散效應(yīng)是成像過程中經(jīng)常發(fā)生的現(xiàn)象。

Laplacian算子一般不以其原始形式用于邊緣檢測(cè),因?yàn)槠渥鳛橐粋€(gè)二階導(dǎo)數(shù),Laplacian算子對(duì)噪聲具有無法接受的敏感性;同時(shí)其幅值產(chǎn)生算邊緣,這是復(fù)雜的分割不希望有的結(jié)果;最后Laplacian算子不能檢測(cè)邊緣的方向;所以Laplacian在分割中所起的作用包括:(1)利用它的零交叉性質(zhì)進(jìn)行邊緣定位;(2)確定一個(gè)像素是在一條邊緣暗的一面還是亮的一面;一般使用的是高斯型拉普拉斯算子(Laplacian of a Gaussian,LoG),由于二階導(dǎo)數(shù)是線性運(yùn)算,利用LoG卷積一幅圖像與首先使用高斯型平滑函數(shù)卷積改圖像,然后計(jì)算所得結(jié)果的拉普拉斯是一樣的。所以在LoG公式中使用高斯函數(shù)的目的就是對(duì)圖像進(jìn)行平滑處理,使用Laplacian算子的目的是提供一幅用零交叉確定邊緣位置的圖像;圖像的平滑處理減少了噪聲的影響并且它的主要作用還是抵消由Laplacian算子的二階導(dǎo)數(shù)引起的逐漸增加的噪聲影響。

責(zé)任編輯:gt

聲明:本文內(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)注

    13

    文章

    1115

    瀏覽量

    47340
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7360

    瀏覽量

    87632
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGA的實(shí)時(shí)邊緣檢測(cè)系統(tǒng)設(shè)計(jì),Sobel圖像邊緣檢測(cè),F(xiàn)PGA圖像處理

    計(jì)算機(jī)軟件實(shí)現(xiàn)方式有更快的處理速度。 經(jīng)驗(yàn)證,系統(tǒng)工作穩(wěn)定,滿足實(shí)時(shí)性要求 。 MATLAB 與 FPGA無線通信、圖像處理、數(shù)字信號(hào)處理
    發(fā)表于 05-24 07:45

    求Matlab圖像自編邊緣檢測(cè)算法

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

    機(jī)器視覺圖像處理之角點(diǎn)檢測(cè)技術(shù)

    角點(diǎn)是圖像很重要的特征,對(duì)圖像圖形的理解和分析有很重要的作用。角點(diǎn)檢測(cè)(Corner Detection)是計(jì)算機(jī)視覺系統(tǒng)中用來獲得
    發(fā)表于 01-22 13:46

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

    、物質(zhì)屬性變化和場(chǎng)景照明變化等等。 邊緣檢測(cè)圖像處理計(jì)算機(jī)視覺中,尤其是特征提取中的一個(gè)
    發(fā)表于 09-21 11:45

    基于視覺圖像的微小零件邊緣檢測(cè)算法研究

    的熱點(diǎn),目前已有多種邊緣檢測(cè)算法,其中最經(jīng)典的算法就是Sobel算法。該算法由于計(jì)算量小、速度快
    發(fā)表于 11-15 16:23

    如何利用FPGA實(shí)現(xiàn)Laplacian圖像邊緣檢測(cè)器的研究?

    和模式識(shí)別的主要特征提取手段,在計(jì)算機(jī)視覺圖像分析等應(yīng)用中起著重要的作用,是圖像分析與處理研究
    發(fā)表于 07-31 06:38

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

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

    基于計(jì)算機(jī)視覺技術(shù)的人臉檢測(cè)系統(tǒng)設(shè)計(jì)

    通過對(duì)基于Haar-like特征的AdaBoost人臉檢測(cè)算法研究,利用由該算法訓(xùn)練的級(jí)聯(lián)分類器和計(jì)算機(jī)視覺類庫(kù)OpenCV進(jìn)行人臉
    發(fā)表于 08-29 14:36 ?43次下載
    基于<b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>視覺</b>技術(shù)的人臉<b class='flag-5'>檢測(cè)</b>系統(tǒng)設(shè)計(jì)

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

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

    基于LEON3開源軟核處理器的動(dòng)態(tài)圖像邊緣檢測(cè)SoC設(shè)計(jì)

    邊緣檢測(cè)圖像處理計(jì)算機(jī)視覺中的基本問題,邊緣
    發(fā)表于 02-04 22:38 ?1132次閱讀
    基于LEON3開源軟核<b class='flag-5'>處理</b>器的動(dòng)態(tài)<b class='flag-5'>圖像</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測(cè)</b>SoC設(shè)計(jì)

    計(jì)算機(jī)視覺常用算法_計(jì)算機(jī)視覺有哪些分類

    本文主要介紹了計(jì)算機(jī)視覺常用算法計(jì)算機(jī)視覺的分類。
    的頭像 發(fā)表于 07-30 17:34 ?1.4w次閱讀

    計(jì)算機(jī)視覺應(yīng)用存在的3大瓶頸問題總結(jié)分析

    目前智能制造工業(yè)檢測(cè)領(lǐng)域計(jì)算機(jī)視覺中的光照問題研究大多從算法上入手。如基于Retinex的X光非均勻鋼絲繩芯輸送帶
    發(fā)表于 05-31 09:55 ?1495次閱讀
    <b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>視覺</b>應(yīng)用存在的3大瓶頸問題總結(jié)分析

    計(jì)算機(jī)視覺的十大算法

    隨著科技的不斷發(fā)展,計(jì)算機(jī)視覺領(lǐng)域也取得了長(zhǎng)足的進(jìn)步。本文將介紹計(jì)算機(jī)視覺領(lǐng)域的十大算法,包括它們的基本原理、應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)。這些
    的頭像 發(fā)表于 02-19 13:26 ?1177次閱讀
    <b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>視覺</b>的十大<b class='flag-5'>算法</b>

    計(jì)算機(jī)視覺圖像處理的區(qū)別和聯(lián)系

    計(jì)算機(jī)視覺圖像處理是兩個(gè)密切相關(guān)但又有明顯區(qū)別的領(lǐng)域。 1. 基本概念 1.1 計(jì)算機(jī)視覺
    的頭像 發(fā)表于 07-09 09:16 ?1088次閱讀

    opencv圖像識(shí)別有什么算法

    OpenCV(Open Source Computer Vision Library)是一個(gè)開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫(kù),提供了大量的圖像處理
    的頭像 發(fā)表于 07-16 10:40 ?743次閱讀