張少玉 柳浪濤
摘要:邊緣檢測是圖像處理中的一項(xiàng)關(guān)鍵技術(shù)。由于家具圖像的復(fù)雜性及現(xiàn)有邊緣檢測算子的局限性,使得單一的邊緣檢測器不能檢測出家具圖像的所有邊緣。為了尋找適合家具圖像的邊緣檢測算子,將幾種不同的邊緣檢測算子應(yīng)用到家具圖像中,按照各種測量指標(biāo)對不同邊緣檢測算子的檢測效果進(jìn)行了評價(jià)。
關(guān)鍵詞:邊緣檢測;Canny算子;Sobel算子;歐氏距離;矢量角算子
DOIDOI:10.11907/rjdk.161061
中圖分類號:TP317.4
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2016)005-0204-03
0 引言
邊緣是信號發(fā)生突變的地方,主要存在于圖像的不同目標(biāo)之間、不同區(qū)域之間、背景與區(qū)域之間。邊緣是分割不同區(qū)域內(nèi)容的邊界。邊緣中包含了很多信息(一個區(qū)域終止、區(qū)域的形狀),通過對圖像邊緣的檢測可以減少處理圖像的工作量。邊緣檢測一直是計(jì)算機(jī)視覺與數(shù)字圖像處理的重要組成部分,其對圖像邊緣定位的準(zhǔn)確性將直接影響到現(xiàn)實(shí)圖像的客觀理解。由于家具圖像生成及傳輸條件的限制,使得家具圖像的部分信號發(fā)生了改變而成為噪聲,這些噪聲給邊緣檢測精確定位帶來了不確定性。邊緣檢測就是克服噪聲的影響,向著定位更加準(zhǔn)確、檢測出的邊緣更加精細(xì)的方向發(fā)展。
自邊緣檢測概念提出以來已有許多成熟的邊緣檢測算子,大致可歸為如下幾類:
(1)基于微分的邊緣檢測算子。該方法基于圖像像素的梯度值在邊緣處突變的原理,通過對圖像求一階偏導(dǎo)或二階偏導(dǎo)數(shù)來尋找邊緣。代表算法有:Roberts算子、Prewitt算子、Sobel算子、Kirsch算子和Laplacian算子。
(2)基于最優(yōu)化的邊緣檢測算子。此類方法通過性噪比來求得邊緣檢測的濾波器。代表算法有Log和Canny算子。
(3)結(jié)合數(shù)學(xué)復(fù)雜理論的邊緣檢測算子。該類算法認(rèn)為邊緣檢測是一個復(fù)雜的過程,不能簡單通過一些人為設(shè)置的值來確定邊緣點(diǎn)。該類方法的代表有神經(jīng)網(wǎng)絡(luò)以及基于模糊集網(wǎng)絡(luò)的邊緣檢測方法。
由于家具圖像邊緣的復(fù)雜性,所以到現(xiàn)在為止沒有一種算法可以獨(dú)立將家具圖像的所有邊緣準(zhǔn)確地識別出來,同時(shí)去除圖像中非邊緣因素。本文試圖用不同的邊緣探測器來對同一幅圖像進(jìn)行邊緣檢測,驗(yàn)證邊緣檢測算子在不同情況(受光照、形狀、邊緣清晰度影響等)下的邊緣檢測效果,為實(shí)現(xiàn)家具圖像多探測器的邊緣檢測算子提供理論依據(jù)。
1 邊緣檢測算子
1.1 Sobel邊緣檢測算子
Sobel邊緣檢測算子[1]是典型的基于梯度的邊緣檢測方法,原理是通過卷積平滑來對某一位置像素點(diǎn)進(jìn)行離散性加權(quán)運(yùn)算,并將計(jì)算結(jié)果大于某一閾值的點(diǎn)設(shè)置為邊緣,所以該算子對噪聲有一定的抑制作用。該算子依據(jù)圖像的亮度梯度值在邊緣處發(fā)生突變的原理,通過對圖像求導(dǎo)找到一個極大點(diǎn),具體如圖1所示。
Sobel算子的邊緣檢測處理流程:
(1)計(jì)算圖像橫縱向梯度值。橫縱向梯度值是用橫縱向的卷積核(見圖2)對圖像中像素點(diǎn)進(jìn)行離散性加權(quán)計(jì)算得出,該值體現(xiàn)了圖像在梯度方向的變化,其中縱向的卷積是橫向卷積逆時(shí)針旋轉(zhuǎn)90°得到。
(2)設(shè)置像素點(diǎn)新值。對每一個像素點(diǎn)進(jìn)行檢查,如果該點(diǎn)的梯度值大于色度255則將其標(biāo)記為邊緣點(diǎn),否則該點(diǎn)的值取梯度值。
1.2 Canny邊緣檢測算子
Canny邊緣檢測算子[2]是一個多級的算法,該算法是公認(rèn)的工業(yè)標(biāo)準(zhǔn)。該算子自John F.Canny提出后一直備受矚目,一個很重要的原因就是Canny證明了它是最優(yōu)的邊緣檢測算子(盡可能多地標(biāo)記真正的圖像邊緣、盡可能地接近真實(shí)的圖像邊緣、盡可能地排除噪聲等造成的虛假邊緣信息)。
Canny算子的邊緣檢測處理流程如下:
(1)去噪處理。由于Canny算子對噪聲敏感,所以首先利用圖像數(shù)據(jù)與高斯平滑模板做卷積,消除單個噪聲對圖像邊緣檢測的影響。
(2)計(jì)算圖像梯度值。用梯度值來量化圖像的像素點(diǎn)。用一階偏導(dǎo)數(shù)的差分計(jì)算橫向及縱向的梯度值。
(3)對梯度值進(jìn)行非極大抑制。圖像的邊緣只出現(xiàn)在梯度值最大的像素點(diǎn)上。通過細(xì)化梯度幅值的屋脊帶,保留幅值大于局部變化的最大點(diǎn),從而精確定位邊緣。
(4)用雙閾值來確定邊緣。Canny算子突出的特點(diǎn)就是用雙閾值來確定哪些點(diǎn)是邊緣點(diǎn)。如果某點(diǎn)的梯度值大于最大閾值則標(biāo)記此點(diǎn)為邊緣點(diǎn)。如果某點(diǎn)的梯度值小于最大閾值、大于最小閾值并且與邊緣相鄰,則標(biāo)記此點(diǎn)為邊緣點(diǎn)。其它情況都看作是非邊緣點(diǎn)。
1.3 基于歐氏距離和矢量角的彩色圖像邊緣檢測方法
以往邊緣檢測算法都是使用一個邊緣探測器來查找邊緣,但圖像信息是許多因素的復(fù)雜綜合體,不能通過單一的因素來簡單刻畫。
顏色的矢量角對圖像的亮度變化不敏感,而對圖像的色調(diào)和飽和度的變化較敏感,所以其常常被認(rèn)為是解決光照效應(yīng)對生成圖像影響的一種工具。歐氏距離作為度量兩個像素之間色差的一種工具,對圖像的亮度變化敏感,但對圖像的色調(diào)和飽和度變化不敏感。所以S.Wesolkowski在邊緣檢測算子中同時(shí)引入矢量角和歐氏距離,讓其同時(shí)作為圖像邊緣檢測的探測器。通過結(jié)合這兩個探測器的優(yōu)點(diǎn),克服不同探測器缺點(diǎn),達(dá)到對圖像邊緣檢測更加精確的目的[3]。該算法計(jì)算公式如下:
算法實(shí)現(xiàn)步驟:①讀取圖像中的三原色;②計(jì)算圖像中像素點(diǎn)的歐氏距離,該過程應(yīng)用一個3×3模板,分別計(jì)算中心點(diǎn)到各邊緣點(diǎn)的距離;③計(jì)算圖像中像素點(diǎn)的矢量角;④結(jié)合距離矢量和歐氏距離,設(shè)置像素點(diǎn)最大值;⑤用閾值預(yù)處理圖片。通過實(shí)驗(yàn)總結(jié)設(shè)置的閾值為0.075。
1.4 彩色圖像的ColorCanny邊緣檢測算子
該方法繼承了Canny算子處理灰度圖像的思想,充分利用圖像的顏色信息實(shí)現(xiàn)對圖像的邊緣檢測[5]。通過對各個顏色通道進(jìn)行邊緣檢測,可以避免針對灰度圖像邊緣處理的缺點(diǎn)。
算法流程如下:①對一幅彩色圖像分解成三通道;②分別用Canny算子對各個通道數(shù)據(jù)進(jìn)行邊緣檢測;③綜合3個通道的數(shù)據(jù)。
1.5 基于視覺的ColorSobel算子
基于新型卷積核的邊緣檢測算子,是一種盡可能保持原圖像的信息邊緣檢測方法。該方法吸取了原Sobel邊緣檢測算子速度快、對噪聲有一定抑制的優(yōu)點(diǎn)。該算子試圖將原彩色圖像的顏色信息在直方圖上向左移動,并將邊緣信息顯示。該方法改變了目前邊緣檢測算子只重視邊緣檢測效果而不重視圖像在邊緣檢測后的視覺效果問題,比原算法能檢測出更多的邊緣。算法流程如下:
(1)將圖像按照RGB通道分解。
(2)將分解開的三通道像素用橫縱向卷積核對像素點(diǎn)進(jìn)行離散性加權(quán)運(yùn)算,將加權(quán)值大于某一點(diǎn)的像素點(diǎn)標(biāo)記為邊緣點(diǎn)。該算法用了一個3×3和一個2×3的卷積核,如圖3所示。
卷積核中的值通過實(shí)驗(yàn)人為設(shè)置,設(shè)置這些值時(shí)綜合考慮了檢測的視覺效果及效率兩個因素。
(3)將各個通道計(jì)算的數(shù)據(jù)按照RGB顏色順序結(jié)合在一起。
2 實(shí)現(xiàn)與比較
在Matlab平臺下實(shí)現(xiàn)對彩色圖像邊緣檢測。經(jīng)典的Sobel和Canny算子對彩色圖像進(jìn)行邊緣檢測時(shí)調(diào)用了Matlab函數(shù)將彩色圖片轉(zhuǎn)為灰度圖。其中,Sobel算子是通過設(shè)置一個給定的邊緣閾值,Canny邊緣檢測算子設(shè)置兩個閾值及一個高斯的σ值大小,而基于歐氏距離和矢量角的彩色圖像邊緣檢測方法,需要設(shè)置斜率及去除偽邊緣閾值來實(shí)現(xiàn)對圖像的邊緣檢測。
本文結(jié)合現(xiàn)有邊緣檢測算子衡量方法,及實(shí)時(shí)系統(tǒng)對家具圖像邊緣檢測的要求,給出衡量家具圖像邊緣檢測算子的方法:①算法的出錯率。將圖像中是邊緣的地方檢測出非邊緣;②以Canny算子檢測出的邊緣為標(biāo)準(zhǔn),檢測出邊緣的寬窄;③算法對圖像弱邊緣檢測性能。弱邊緣檢測是圖像處理中的關(guān)鍵問題,一直是熱門研究課題;④算法對圖像邊緣檢測的視覺效果。該因素作為本文邊緣檢測的一個標(biāo)準(zhǔn),是因?yàn)榧揖邔?shí)時(shí)系統(tǒng)希望實(shí)現(xiàn)一種邊緣檢測算子,能夠在將家具圖像邊緣識別出來的基礎(chǔ)上保持原圖像的視覺信息,這是以往算法中忽視的地方。
用3幅圖像來驗(yàn)證不同邊緣檢測算子的邊緣檢測效果。第一幅與第三幅選取的是柜子的圖像。第二幅圖像選擇的是標(biāo)準(zhǔn)圖像庫中的Lena圖像。其中選取第一幅圖像的原因是柜子的邊緣及不同的門之間存在很強(qiáng)的邊緣,并且中間的部分存在很弱的邊緣。第二幅圖像用傳統(tǒng)的方法來比較不同算子的邊緣檢測結(jié)果。第三幅圖像選擇一幅具有木紋的柜子,該柜子由于拍攝原因,邊緣不很清晰。
實(shí)驗(yàn)中,Sobel和Canny算子都首先用Matlab中的rgb2gray函數(shù)將原圖轉(zhuǎn)為灰度圖再進(jìn)行邊緣檢測。實(shí)驗(yàn)中設(shè)置邊緣閾值、斜率等都通過人工設(shè)置,選取相對較好的實(shí)驗(yàn)結(jié)果。每組6幅圖像中,(a)圖是原圖,(b)圖是Sobel算子對原圖的灰度圖邊緣檢測結(jié)果,(c)圖是Canny算子對原圖的灰度圖邊緣檢測結(jié)果,(d)圖是ColorSobel算子對原圖邊緣檢測結(jié)果,(e)圖是ColorCanny算子對原圖邊緣檢測結(jié)果,(f)圖是歐氏距離及距離矢量結(jié)合的方法對原圖邊緣檢測結(jié)果。
實(shí)驗(yàn)1給出了具有強(qiáng)邊緣、弱邊緣以及有圖案的圖像。ColorSobel比Sobel算子的檢測結(jié)果要好,并且在識別柜子上的花朵時(shí)比其它算子更加準(zhǔn)確,但是檢測出的邊緣較粗。Canny算子檢測出的圖像強(qiáng)邊緣參差不齊,都沒將弱邊緣識別出來,并且Canny檢測出許多偽邊緣。ColorCanny與Canny算子在相同參數(shù)設(shè)置的情況下檢測出了更多的邊緣。歐氏距離及距離矢量角算子識別出來的強(qiáng)邊緣比較細(xì),并且其對有弧度的花朵邊緣識別比較模糊,所以距離矢量和矢量角算子適合應(yīng)用于直線的邊緣檢測。
從實(shí)驗(yàn)2(見圖5)可以看出,Sobel算子比Canny算子的邊緣定位更加準(zhǔn)確,主要體現(xiàn)在帽子上。在相同的閾值情況下,ColorSobel比Sobel算子能夠檢測出更多的邊緣,并且前者視覺效果更好。距離矢量和矢量角算子在檢測有弧度的邊緣時(shí)檢測結(jié)果較其它方法更寬,這是因?yàn)樵撍阕訉蓚?cè)邊緣及邊緣中間的像素點(diǎn)都作為邊緣。所以距離矢量和矢量角邊緣檢測算子不適合應(yīng)用于弧度的邊緣檢測。
從實(shí)驗(yàn)3可以看出,ColorSobel將柜子圖像中木板、地面磚塊的紋理及周圍的房子邊緣更加突出地顯示。ColorSobel檢測的圖像較ColorCanny及距離矢量和矢量角算子識別出的路燈更加完整,因?yàn)镃olorSobel是通過位置加權(quán)實(shí)現(xiàn)對圖像的邊緣檢測,所以更適合于突出顯示輪廓的邊緣檢測(例如:葉子的脈絡(luò)走向等),但不適應(yīng)于圖像的弱邊緣檢測。
3 結(jié)語
本文運(yùn)用不同邊緣檢測算子對家具圖像進(jìn)行邊緣檢測,并對比了檢測結(jié)果。發(fā)現(xiàn)Canny算子雖然能準(zhǔn)確檢測出圖像邊緣,但其閾值難以確定并檢測出許多偽邊緣,不適合應(yīng)用在家具客戶化定制實(shí)時(shí)系統(tǒng)中。ColorSobel適用于保持原圖像信息基礎(chǔ)上顯示脈絡(luò)的處理中。距離矢量和矢量角的邊緣檢測方法對家具圖像檢測效果很好,但是對弱邊緣檢測需要改進(jìn)。
參考文獻(xiàn):
[1]MATTHEWS J.An introduction to edge detection:the sobel edge detector[EB/OL].http://www.generation5.org/content/2002/im01.asp
[2]CANNY J.A computational approach to edge detection[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,1986 (6):679-698.
[3]DONY R D,WESOLKOWSKI S.Edge detection on color images using RGB vector angles[C].Electrical and Computer Engineering,1999 IEEE Canadian Conference on,IEEE,1999.
[4]STOCKHAM T G.Image processing in the context of a visual model[J].Proc.IEEE,1972,60(7):828-842.
(責(zé)任編輯:杜能鋼)