?

一種基于Sobel算子的邊緣檢測算法

2020-11-13 03:38鄭歡歡白魚秀張雅瓊
微型電腦應用 2020年10期
關鍵詞:邊緣檢測

鄭歡歡 白魚秀 張雅瓊

摘要: 針對傳統Sobel邊緣檢測算法對噪聲敏感、定位不夠精確的缺點,提出了改進Sobel算子的邊緣檢測算法。算法基于均值計算和差分處理角度構造了5×5的梯度權值模板,通過改進的非極大抑制算法有效細化了邊緣,采用局部自適應動態閾值提取邊緣信息。通過實驗表明,該算法不僅能夠較快、較好的提取邊緣信息,而且具有較強的抗噪能力。

關鍵詞: Sobel算子; 邊緣檢測; 非極大值抑制; 局部自適應動態閾值

中圖分類號: TN 911.73

文獻標志碼: A

An Edge Detection Algorithm Based on Sobel Operator

ZHENG Huanhuan, BAI Yuxiu, ZHANG Yaqiong

(School of Information Engineering, Yulin University, Yulin 719000, China)

Abstract: Aiming at the shortcomings of traditional Sobel edge detection algorithm such as noise sensitivity and inaccurate location, an improved Sobel operator edge detection algorithm is proposed. Based on mean calculation and difference processing, a 5×5 gradient weight template is constructed. The edge is refined effectively by improved nonmaximum suppression algorithm, and the edge information is extracted by local adaptive dynamic threshold. Experiments show that the algorithm not only can extract edge information quickly and better, but also has strong antinoise ability.

Key words: Sobel operator; edge detection; nonmaximum suppression; local adaptive dynamic threshold

0引言

圖像低級特征提取技術就是從整副圖像而不是顯著區域層次來描述圖像,其中最重要的研究內容之一就是邊緣檢測。這一技術有助于人類從從圖像中獲得更多信息,從而進行智能控制處理。常用的一些經典邊緣檢測算子包括Roberts算子、Prewitt算子、Sobel算子、Log算子和Canny算子等。Sobel算子因其耗時短、具有一定的抗噪性、邊緣檢測效果較好而得到廣泛應用。國內外的學者經過大量研究對基于該算子的算法提出了很多改進算法,如增加梯度模板方向[1]、修改梯度模板權值[2]、修改提取邊緣的閾值[3]、綜合其他方法的改進算法[4]等。本文在以前的研究基礎上,從均值計算和差分處理角度構造5(5梯度模板,并通過邊緣細化和自適應動態閾值處理,經實驗檢測的邊緣更細,抗噪性更好。

1傳統Sobel算法

Sobel算子是應用一階微分等價算子檢測圖像梯度,從而確定邊緣位置的邊緣檢測算法。通常用梯度

f來表示一幅圖像f在(x,y)位置處的邊緣強度和方向,其梯度的定義如式(1)。

f≡grad(f)≡gxgy=

fxfy ?(1)

梯度向量的幅值和方向如式(2)、式(3)。

g(x,y)=g2x+g2y≈gx+gy (2)

α(x,y)=arctangygx(3)

傳統的Sobel算子采用水平和垂直兩個方向卷積模板與圖像進行卷積運算。假設一副圖像的3×3區域如圖1(a)所示,Sobel算子水平和垂直梯度模板分別如圖1(b)和(c)所示。

將圖像區域分別與兩個模板中的對應權值相乘,并將所有乘積相加,得到3×3模板垂直和水平兩個方向的近似偏導,如式(4)、式(5)。

gx=(z1+2z4+z7)-(z3+2z6+z9) (4)

gy=(z1+2z2+z3)-(z7+2z8+z9) (5)

一般用式(2)約等的近似計算得到位置像素梯度值。為了得到邊緣圖像,還需要對梯度圖像進行閾值的二值化處理,不僅能除掉部分偽邊緣,還能得到清晰二值化邊緣圖像。根據不同環境的要求設置合適的閾值,當梯度值大于閾值,則認為該像素點為圖像的邊緣點;當梯度值小于閾值,則認為該像素點不是圖像的邊緣點。

Sobel算子具備一階算子算法簡單,處理速度快的優點,同時由于使用了加權平均算法,因此對圖像中的一些噪聲具有一定的抑制能力。由于Sobel算子只獲取了水平和垂直兩個方向上的邊緣信息,定位精度不高,所以對于噪聲復雜的邊緣圖像,檢測效果并不理想。針對以上缺點,本文通過擴大邊緣檢測算子,采用局部自適應動態閾值,不僅提高了算法的抗噪性能,而且增強了邊緣定位精度。

2改進sobel算法

2.1定義5×5算子模板

常用的濾波模板是3×3,但是近來更大的模板被用來執行復雜的濾波運算。定義5×5大的邊緣檢測模板不僅可以和濾波模板匹配,對減少噪聲的平滑效果也較好。

為了既實現邊緣檢測又能濾除噪聲,在定義5×5算子模板要考慮均值計算和差分處理的最優均衡方式[5]。

假設離散平滑算子滿足高斯平均即服從正態分布,那么用二項式展開系數,如表1所示,近似求得級數的整數系數。

對于不同級數n,位置k的系數為p(k,n),表1中僅列舉了級數小于5的系數如式(6)。

p(k,n)=n?。╪-k)!*k!, if (k≥0,k≤n)

0, others ?(6)

根據以上得出的最優離散平滑算子系數,計算出窗口大小為w的最優平滑系數s(k)和最優差分系數d(k),如式(7)、式(8)。

s(k)=p(k,w-1) (7)

d(k)=p(k,w-2)-p(k-1,w-2) (8)

由上可知,對于窗口大小等于5的系數分別為:

s(0)=1, s(1)=4, s(2)=6, s(3)=4, s(4)=1。

d(0)=1, d(1)=2, d(2)=0, d(3)=-2, d(4)=-1。

將一條坐標軸上的最優平滑和另一條坐標軸上的最優差分結合,形成既能抗噪又能檢測邊緣的Sobel算子,算法如式(9)、式(10)。

Sobel x(x,y)=∑w-1x=0∑w-1y=0s(x)·d(y) (9)

Sobel y(x,y)=∑w-1x=0∑w-1y=0s(y)·d(x)(10)

這樣生成的Sobel算子的5×5水平和垂直模板如圖2所示。

2.2梯度計算

將灰度圖像分別與圖2定義的兩個方向模板進行卷積運算,求出模板中心點對應的圖像像素點的兩個方向梯度值:

gx(x,y),gy(x,y)。梯度圖像g(x,y)如式(11)。

g(x,y)=gx/12+gy/12 (11)

為了防止灰度值溢出,丟失邊緣信息,將兩個方向梯度值都除以衰減因子。

2.3邊緣細化

由于灰度圖像的邊緣是漸變區域,不是理想的階躍信號,因此通過上述計算得到的梯度圖像在邊緣位置存在屋脊帶,需要對梯度圖像進行細化處理,得到特征明顯的邊緣信息。

常用的邊緣細化方法是非極大抑制(NMS),就是在領域內尋找局部最大搜索,抑制不是極大值的元素。這樣就可以把屋脊帶的粗邊緣(大于1個像素)細化為一個像素寬度,但是同時往往會丟失邊緣點,造成邊緣不連續。

本文采用改進的非極大抑制算法[6]。由于Sobel梯度模板只在水平和垂直方向進行卷積運算,因此只考慮了0°和90°的非極大值抑制,如式(12)。

gr(x,y)=

g(x,y), if(g(x,y)>α*max(A)

|g(x,y)>α*max(B))

0,others (12)

其中,A為5×5模板中中心像素所在的水平方向的5個像素組成的一維矩陣,即

A=[g(i-2,j),g(i-1,j),g(i,j),g(i+1,j),g(i+2,j)],B為5×5模板中中心像素點所在的垂直方向的5個像素組成的一維矩陣,

即B=[g(i,j-2),g(i,j-1),g(i,j),g(i,j+1),g(i,j+2)]。α為可控因子,根據具體情況調節細化強度。α越小丟失的邊緣信息越少,但是邊緣細化強度越小,經多次實驗發現,取值在0.75~0.9之間,既可以細化邊緣由保留了較完整的邊緣信息。

2.4自適應動態閾值

梯度圖像經過邊緣細化濾除了部分偽邊,但是對于受噪聲影響,仍有部分邊緣檢測效果不是很理想,一般通過閾值處理來提高抗噪能力。

實際應用中,由于受不同環境的影響獲取的圖像差別較大,同一圖像的不同區域顏色強度也有區別,使用全局閾值得到的邊緣效果不夠理想。本算法根據不同的灰度圖像子區域采用局部自適應動態閾值提取邊緣信息,不僅提高了定位精度,也增加了算法的抗噪能力。在一個閾值判斷的5×5模板中,

圖像中心像素(x,y)的局部自適應閾值t(x,y)如式(13)。

t(x,y)=[sum(C)-min(C)-max(C)]/23 (13)

其中,C為中心像素(x,y)所在的5×5模板中所有像素點組成的矩陣。

設定好閾值之后,將得到的梯度圖像通過式(14)進行二值化處理,提取邊緣信息。

b(x,y)=255,if(gr(x,y)>t(x,y))

0,others ?(14)

3實驗結果及分析

為檢測改進Sobel算法的邊緣檢測效果,在MATLAB2014平臺下編程實驗。將512×512的灰度圖像“pepper”作為原圖像分別采用傳統Sobel算法、3×3模板的四方向Sobel算法和改進的5×5局部自適應閾值Sobel算法,在無噪聲以及含有1%脈沖噪聲和方差為1%高斯噪聲的條件下,分別進行邊緣檢測實驗,并從檢測效果和時間開銷兩方面進行分析。

3.1算法邊緣提取效果分析

無噪聲條件下的邊緣檢測結果如圖3所示。

從對比圖可以看出,3×3模板的四方向Sobel算法和本文算法保留了更多圖像邊緣細節信息,由于使用了邊緣細化,所以這兩種邊緣線條更細,而且邊緣的完整性和連續性都比傳統Sobel算法要好。

含有1%脈沖噪聲和方差為1%高斯噪聲的條件下的邊緣檢測結果,如圖4所示。

從對比圖明顯看出,本文的改進算法的抗噪性要強于前兩種算法。

3.2算法時間開銷

在實驗中統計了三種算法處理原圖像的時間開銷,算法(a)用時12 s,算法(b)用時20 s,算法(c)用時16 s??梢钥闯鰝鹘ySobel算法時間開銷是最小的,而3×3模板的四方向Sobel算法時間開銷是最大的,本文改進算法雖然用了5×5的大模板增加了運算量,但是由于選擇了水平和垂直兩個方向運算速度比四方向更快些。

4總結

針對傳統Sobel算法的不足,本文提出的改進Sobel算法從均值計算和差分處理兩方面考慮構造了5×5卷積模板的權值,并通過邊緣細化和局部動態自適應閾值計算,使邊緣圖像不僅能較好的描述圖像的邊緣信息,而且具有較好的抗噪性和時效性。

參考文獻

[1]鄭英娟,張有會,王志巍,等.基于八方向Sobel算子的邊緣檢測算法[J].計算機科學,2013,40(11A):354356.

[2]何春華,張雪飛,胡迎春.基于改進Sobel算子的邊緣檢測算法的研究[J].光學技術,2012,3(38):323327.

[3]劉占.基于局部期望閾值分割的圖像邊緣檢測算法[J].計算機與現代化,2016(8):5255.

[4]李怡燃,龐春穎,常知強. Sobel算子和形態學相結合的尿液試紙條邊緣檢測算法研究[J].生物醫學工程研究,2019,38(1):4852.

[5]Mark S Nixon, Alberto S Aguado.計算機視覺特征提取與圖像處理 [M]. (第三版).北京:電子工業出版社,2014:100101.

[6]沈德海,張龍昌,鄂旭,等.一種基于梯度的細胞圖像邊緣檢測算法[J].信息技術,2018(3):69.

(收稿日期: 2019.08.29)

猜你喜歡
邊緣檢測
基于數學形態學的一種改進CO2焊熔池圖像邊緣檢測算法
離散過程神經網絡和CGA相融合的邊緣檢測
基于圖像的物體尺寸測量算法研究
唐卡圖像邊緣提取
水下大壩裂縫圖像分割方法研究 
基于多算法融合的多車牌定位方法研究
基于高精度星敏感器的星圖降噪研究
基于灰度的圖像邊緣檢測與匹配算法的研究
基于TMS320的跑道異物監測系統
基于邊緣檢測和色彩空間的混合車牌定位算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合