魏 雨,黃玉蕾
(西安培華學(xué)院 智能科學(xué)與信息工程學(xué)院,西安 710125)
隨著互聯(lián)網(wǎng)技術(shù)和移動(dòng)通信技術(shù)的不斷發(fā)展,萬物互聯(lián)已成為可以預(yù)見的必然趨勢(shì)。物聯(lián)網(wǎng)終端將產(chǎn)生海量的圖像視頻數(shù)據(jù),在此背景之下,模擬人類視覺系統(tǒng)的計(jì)算機(jī)視覺技術(shù)應(yīng)運(yùn)而生,即賦予計(jì)算機(jī)“看”和“認(rèn)知”的能力,是計(jì)算機(jī)認(rèn)識(shí)世界的基礎(chǔ)。邊緣檢測(cè)作為計(jì)算機(jī)視覺中非常重要且實(shí)用的圖像處理方法,通常用于圖像特征的提取,其目的就是為了找到邊緣點(diǎn)的集合。
邊緣點(diǎn)往往是灰度變化最劇烈的點(diǎn),基于梯度的邊緣檢測(cè)算法比較經(jīng)典的有Prewitt, Sobel,Canny,Robinson,Roberts等[1-2]。但是,在傳統(tǒng)邊緣檢測(cè)算法中,Prewitt只有檢測(cè)水平邊緣和垂直邊緣的兩個(gè)模板,容易造成邊緣點(diǎn)的誤判或丟失。Sobel算子根據(jù)周圍像素點(diǎn)位置的不同設(shè)定了不同的權(quán)值,提高了邊緣的清晰度。在Sobel算子的研究基礎(chǔ)上,Robinson算子增加了檢測(cè)模板數(shù)量,由原來的兩個(gè)方向擴(kuò)展到了八個(gè)方向。Canny算子對(duì)于邊緣像素只能標(biāo)識(shí)一次,且易出現(xiàn)偽邊緣[3]。Roberts算子沒有經(jīng)過圖像平滑計(jì)算,不能抑制噪聲,且易造成邊緣信息丟失。Kirsch算子對(duì)8個(gè)方向邊緣信息進(jìn)行檢測(cè),具有較好的邊緣定位能力,并且對(duì)噪聲有一定的抑制作用,但計(jì)算量大。
針對(duì)以上問題,2017年,文獻(xiàn)[4]提出一種新的Kirsch邊緣檢測(cè)算法,該邊緣檢測(cè)算法具有較好的抗噪聲能力和自適應(yīng)能力[4]。2020年,文獻(xiàn)[5]限制型自適應(yīng)SUSAN邊緣檢測(cè)算法提出了結(jié)合自適應(yīng)門限算法和閾值選擇策略的限制型自適應(yīng)SUSAN邊緣檢測(cè)算法[5]。2021年,文獻(xiàn)[6]提出一種改進(jìn)的彩色遙感圖像邊緣檢測(cè)算法研究,該算法采用分?jǐn)?shù)階微分和Canny算子相結(jié)合,得到一種更優(yōu)的彩色遙感圖像邊緣檢測(cè)方法[6]。2020年,文獻(xiàn)[7]提出自適應(yīng)閾值Prewitt的石榴病斑檢測(cè)算法,采用雙邊濾波減少噪聲干擾;通過高頻強(qiáng)調(diào)濾波提高圖像高頻分量,增強(qiáng)局部細(xì)節(jié);根據(jù)高斯噪聲概率分布設(shè)置算子卷積掩膜元素權(quán)重,利用對(duì)稱性改進(jìn)像素點(diǎn)梯度計(jì)算的方法,改善了傳統(tǒng)Prewitt算法在石榴外表病斑及石榴輪廓檢測(cè)精準(zhǔn)度不高、抗噪聲能力不強(qiáng)以及存在偽邊緣等問題[7]。2021年,為了提高帶鋼表面缺陷檢測(cè)的效率和準(zhǔn)確率,文獻(xiàn)[8]提出一種基于Sobel算子的帶鋼表面缺陷圖像邊緣檢測(cè)算法。首先運(yùn)用改進(jìn)的四方向Sobel算子以及自適應(yīng)動(dòng)態(tài)閾值對(duì)圖像進(jìn)行二值化圖里,然后將二值化圖像進(jìn)行基于Hilditch算法的邊緣細(xì)化處理,得到最終檢測(cè)圖像[8]。2021年,文獻(xiàn)[9]變壓器輸變電設(shè)備邊緣檢測(cè)的改進(jìn)算法,在變壓器輸變電設(shè)備的邊緣檢測(cè)中運(yùn)用大津法來動(dòng)態(tài)獲取最優(yōu)閾值,從而降低Prewitt算子對(duì)于邊緣點(diǎn)的誤判[9]。
另外,還有眾多學(xué)者將模糊邏輯、多尺度聚類、圖論以及基于數(shù)學(xué)形態(tài)等方法運(yùn)用在圖像邊緣檢測(cè)中。2016年,文獻(xiàn)[10]基于多視圖聚類的自然圖像邊緣檢測(cè),將圖像局部特征與稀疏編碼結(jié)合在一個(gè)統(tǒng)一的多視圖聚類框架中,從而有效提高邊緣檢測(cè)的魯棒性[10]。2018年,文獻(xiàn)[11]提出了一種融合小波變換模極大值法和新型改進(jìn)的數(shù)學(xué)形態(tài)學(xué)的含噪圖像邊緣檢測(cè)方法[11]。2018年,文獻(xiàn)[12]提出基于Pal和King模糊理論的邊緣檢測(cè)改進(jìn)算法[12]。2022年,文獻(xiàn)[13]采用計(jì)算歐式距離強(qiáng)化圖像塊中心間相關(guān)性從而達(dá)到降噪的方式,實(shí)現(xiàn)了圖像邊緣的有效提取[13]。2022年,文獻(xiàn)[14]提出一種基于改進(jìn)K-means聚類算法的自適應(yīng)Canny算子工件邊緣檢測(cè)算法,在工件邊緣檢測(cè)時(shí),首先通過改進(jìn)K-means算法進(jìn)行分割與融合圖像,然后采用Otsu閾值分割處理,使用最小二乘法擬合工件孔洞鋸齒邊界,提高了復(fù)雜相似工件邊緣檢測(cè)的識(shí)別度[14]。
隨后,機(jī)器學(xué)習(xí)和人工智能技術(shù)也被用于圖像邊緣檢測(cè)中。2019年,文獻(xiàn)[15]提出基于卷積神經(jīng)網(wǎng)絡(luò)的艦船圖像邊緣檢測(cè)算法[15]。2021年,文獻(xiàn)[16]提出的機(jī)器學(xué)習(xí)的光照不均圖像邊緣檢測(cè)系統(tǒng),采用支持向量機(jī)模式將不能被線性分類的圖像,通過非線性映射至高維特征空間,利用回歸訓(xùn)練的核函數(shù)進(jìn)行非線性擬合。最后通過零交叉檢測(cè)法完成圖像邊緣檢測(cè)[16]。2022年,文獻(xiàn)[17]為解決衛(wèi)星遙感圖像邊緣模糊噪點(diǎn)過多,導(dǎo)致圖像清晰度過低的問題,提出基于深度學(xué)習(xí)的衛(wèi)星遙感圖像邊緣檢測(cè)方法[17]。參考文獻(xiàn)[18]針對(duì)海岸線動(dòng)態(tài)監(jiān)測(cè)管理中,由于自然環(huán)境復(fù)雜多變,拍攝的遙感圖像中海陸邊界界限不明顯,導(dǎo)致提取到的海岸線邊緣定位不準(zhǔn)確的現(xiàn)象,提出融合深度卷積神經(jīng)網(wǎng)絡(luò)與語義分割的方法來檢測(cè)海岸線邊緣[18]。
綜合以上分析可以看出,在圖像檢測(cè)方面,尚不存在一種通用的方法理論,現(xiàn)有的算法都是以處理特定場景或特定情況下的問題為目的。針對(duì)以上問題,本文對(duì)不同色彩空間下的圖像,利用Kirsch算子[19-22]聯(lián)合高低雙閾值進(jìn)行邊緣檢測(cè),實(shí)驗(yàn)結(jié)果表明,本文算法在保持圖像細(xì)節(jié)和抗噪聲干擾方面都有較好的效果。
Kirsch是由R.Kirsch提出的一種邊緣檢測(cè)算子,可以對(duì)像素周圍8個(gè)方向上的邊緣信息進(jìn)行檢測(cè),是一種離散的一階微分算子。由于可檢測(cè)8個(gè)方向的邊緣,因此Kirsch算子對(duì)于邊緣的定位能力較好,而且在噪聲抑制方面效果較為理想,對(duì)灰度漸變和噪聲較多的圖像處理效果較好。
Kirsch算子利用0,π/4,π/2,3π/4,π,5π/4,3π/2,7π/4這8個(gè)方向的(如圖1所示)羅盤核模板對(duì)圖像上的每個(gè)像素點(diǎn)進(jìn)行卷積運(yùn)算,從而得到每個(gè)像素點(diǎn)八個(gè)方向的梯度幅值與方向,并以其中的最大值作為該點(diǎn)的邊緣輸出。
圖1 模板方向
八個(gè)模板分別代表八個(gè)方向,模板矩陣如下所示。
假定某個(gè)像素點(diǎn)為P(i,j),這個(gè)像素點(diǎn)及其周圍0,π/4,π/2,3π/4,π,5π/4,3π/2,7π/4這八個(gè)方向上像素點(diǎn)的像素值組成的矩陣為P(i,j)。
方向k對(duì)應(yīng)的Kirsch算子模板為:
利用Pi,j與Mk進(jìn)行卷積,可得到坐標(biāo)(i,j)處像素點(diǎn)在方向k上的梯度值fk(i,j),如式(1)所示。
(1)
其中:k=0,π/4,π/2,3π/4,π,5π/4,3π/2,7π/4。
取八個(gè)方向上的最大梯度作為點(diǎn)(i,j)最終的梯度值GRAi,j如式(2)所示。
GRAi,j=max{fk(i,j)}
(2)
在Kirsch的8個(gè)方向模板中,以π/2方向和3π/2方向?yàn)槔?2方向與3π/2方向得到的梯度強(qiáng)度方向相反,但是宏觀來說,這兩個(gè)方向模板得到的實(shí)際邊緣形態(tài)是一致的。以圖1中的方向?yàn)榛鶞?zhǔn),π/2方向模板和3π/2方向模板得到的邊緣都是垂直方向的。同理,π方向模板和0方向模板得到的邊緣都是水平的。由此可以將8個(gè)方向的梯度強(qiáng)度縮減到4個(gè)方向。改進(jìn)的Kirsch算子流程如圖2所示。
圖2 改進(jìn)Kirsch算子
設(shè)圖像為A,取坐標(biāo)(i,j)處及其相鄰像素點(diǎn)的灰度矩陣Ai,j,如式(3)所示。Kirsch羅盤核為Mk(k=0,π/4,π/2,3π/4,π,5π/4,3π/2,7π/4)。
(3)
利用8個(gè)羅盤核分別與圖像進(jìn)行卷積運(yùn)算求得各個(gè)方向模板對(duì)應(yīng)的圖像梯度Gi=(0,π/4,π/2,3π/4,π,5π/4,3π/2,7π/4),然后分別求取Gi與Gi+π中的絕對(duì)值最大值。令:
G1=max(|G0|,|Gπ|)
(4)
G2=max(|G(π/4) |,|G(5π/4) |)
(5)
G3=max(|G(π/2) |,|G(3π/2) |)
(6)
G4=max(|G(3π/4) |,|G(7π/4) |)
(7)
然后再分別求的兩垂直方向上圖像梯度的二范數(shù)F,如式(8)式(9)所示。
(8)
(9)
最后取F的最大值作為窗戶中心像素(i,j)處的邊緣強(qiáng)度,如式(10)所示。
e(i,j)=max(F13,F24)
(10)
其中:e(i,j)表示采用Kirsch算子計(jì)算得到的坐標(biāo)(i,j)處像素的邊緣強(qiáng)度。
在傳統(tǒng)的基于閾值的邊緣檢測(cè)方法中,往往人為預(yù)先設(shè)定二值化的閾值,這樣的方式準(zhǔn)確性較差。后來,研究人員提出了各種自動(dòng)閾值生成的想法。2016年,文獻(xiàn)[23]以FPGA作為圖像處理的核心機(jī),采用中值濾波與快速排序算法相結(jié)合的方式,計(jì)算得到像素點(diǎn)周圍的局部邊緣閾值,然后通過該局部閾值得到圖像的邊緣信息[23]。2019年,文獻(xiàn)[24]利用FPGA并行處理的特性,采用多方向模板與自適應(yīng)閾值相結(jié)合的方式,提出了改進(jìn)的Sobel邊緣檢測(cè)算法[24]。但是單閾值的邊緣檢測(cè)方法經(jīng)常會(huì)出現(xiàn)邊緣檢測(cè)率低或者出現(xiàn)偽邊緣的現(xiàn)象,因此本文提出一種采用雙閾值的邊緣檢測(cè)方法。文獻(xiàn)[25]針對(duì)絕緣子航拍圖像存在的邊緣檢測(cè)結(jié)果較差的現(xiàn)象,在Canny算子的基礎(chǔ)上提出了一種二維最大熵閾值優(yōu)化的邊緣檢測(cè)算法。從圖像信息熵的角度出發(fā),利用最大圖像熵法,將一維圖像熵提升到二維圖像熵,然后再去計(jì)算閾值,這樣提高了邊緣檢測(cè)的準(zhǔn)確率[25]。
由式(10)可得圖像A所有像素的邊緣強(qiáng)度矩陣E,如式(11)。
E=[e(x,y)]m×n
(11)
其中:x=1,2,…,m,y= 1,2,…,n。
為了提高邊緣檢測(cè)結(jié)果的連續(xù)性和算法的自適應(yīng)能力,本文設(shè)定兩個(gè)閾值,高閾值TH和低閾值TL,而高低閾值由整幅圖像邊緣強(qiáng)度的平均值Tavg來確定,average()函數(shù)用于求取整幅圖像的平均邊緣強(qiáng)度,分別如式(12)~(14)所示。
TL=Tavg/3
(12)
TH= 2TL
(13)
Tavg=average(E)
(14)
利用雙閾值算法將E中所有像素點(diǎn)劃分為邊緣和背景兩大類,如果某位置處像素點(diǎn)的邊緣強(qiáng)度值大于較高的閾值,則確定該像素肯定是邊緣點(diǎn);如果某位置處像素點(diǎn)的邊緣強(qiáng)度值小于較小的閾值,則確定該像素肯定是背景點(diǎn);如果某位置處像素點(diǎn)的邊緣強(qiáng)度高于較低閾值且低于較高閾值,那么此像素點(diǎn)可能是邊緣點(diǎn)也可能是背景點(diǎn)。那究竟是邊緣點(diǎn)還是像素點(diǎn),要根據(jù)像素點(diǎn)周圍八個(gè)鄰域點(diǎn)中邊緣點(diǎn)的個(gè)數(shù)來判定。如果其周圍鄰域內(nèi)邊緣點(diǎn)的個(gè)數(shù)大于或者等于4,即數(shù)量超過50%,則判定該像素點(diǎn)為邊緣點(diǎn),標(biāo)記為0;相反地,如果其周圍鄰域內(nèi)邊緣點(diǎn)的個(gè)數(shù)小于4,可判定該像素點(diǎn)為背景像素點(diǎn),標(biāo)記為1,如公式(15)所示。高閾值和低閾值由圖像的邊緣強(qiáng)度矩陣E來決定。
(15)
函數(shù)f(x,y)的表達(dá)如式(16)所示。
(16)
其中:θ(x,y)為像素點(diǎn)(x,y)周圍一周內(nèi)8個(gè)相鄰點(diǎn)中為邊緣點(diǎn)的像素的個(gè)數(shù)。
RGB色彩模型是一種表示顏色的模式或者標(biāo)準(zhǔn),RGB色彩空間中,所有圖像都是由紅、綠、藍(lán)三原色組成,或者說RGB圖像可以分為三通道,R(red)是紅色通道,G(green)是綠色,B(blue)是藍(lán)色通道。這3種顏色以不同的量進(jìn)行疊加,就可以顯示出五彩繽紛的色彩,如圖3所示。
圖3 RGB圖像原理圖
可以把RGB圖片看做是3個(gè)二維數(shù)組的層層疊加。每一層中的二維數(shù)組都代表一種顏色通道。對(duì)于一幅RGB彩色圖像而言,每一種顏色對(duì)應(yīng)一幅分量圖像,而這幅彩色圖像就相當(dāng)于由紅色分量圖、藍(lán)色分量圖和綠色分量圖疊加而成。
對(duì)于一幅圖像來說,其在R、G、B分量中的信息各有偏重,如圖4所示,RGB三個(gè)不同色彩空間下突出的人物特色是不同的。而合成過程中,由于色彩的疊加作用,會(huì)對(duì)各分量下偏重有效的信息造成削弱。為保證邊緣檢測(cè)中有效信息的最大化保留,本文提出利用上述邊緣檢測(cè)算法對(duì)各色彩空間下的圖像分量分別進(jìn)行處理。
圖4 圖像的RGB分量圖
Kirsch聯(lián)合高低雙閾值的RGB圖像邊緣檢測(cè)算法處理過程包含色彩分量提取、圖像去噪、圖像增強(qiáng)、計(jì)算像素點(diǎn)強(qiáng)度、計(jì)算閾值、劃分邊緣、融合邊緣幾大步驟,具體流程如圖5所示。
圖5 邊緣檢測(cè)流程
在RGB圖像中,一個(gè)彩色像素點(diǎn)的顏色由紅(R)、綠(G)、藍(lán)(B)三原色組合而來,因此RGB圖像的每一個(gè)像素的顏色值由R、G、B三個(gè)分量表示。圖像中每個(gè)像素的顏色值直接存放在圖像的像素矩陣中。
對(duì)于M行N列大小的圖像,需要3個(gè)M×N的二維矩陣分別表示各個(gè)像素的R、G、B顏色分量。提取原圖對(duì)應(yīng)的RGB不同分量下的分量圖,即提取各分量對(duì)應(yīng)的二維矩陣,將各分量圖轉(zhuǎn)化為灰度圖。
在圖像數(shù)字化或者圖像傳輸?shù)倪^程中,由于受到周圍外界環(huán)境的影響,圖像中會(huì)產(chǎn)生一些不必要的或多余的干擾信息,稱作噪聲。就圖像噪聲本身來說,它并不是空域的,即不是指某一點(diǎn)相對(duì)于周邊點(diǎn)顯得突兀,就說該點(diǎn)是噪聲點(diǎn)。而是指在連續(xù)的時(shí)間內(nèi),在同一位置產(chǎn)生的像素點(diǎn)如果誤差較大,則稱之為噪聲點(diǎn),即噪聲本質(zhì)是時(shí)域的。一幅圖像在實(shí)際應(yīng)用中可能存在各種各樣的噪聲,這些噪聲可能在傳輸中產(chǎn)生,也可能在量化等處理中產(chǎn)生。
噪聲會(huì)影響圖像質(zhì)量。邊緣檢測(cè)主要是基于圖像像素強(qiáng)度的導(dǎo)數(shù),而導(dǎo)數(shù)通常對(duì)噪聲很敏感,在邊緣檢測(cè)中噪聲很可能會(huì)引起邊緣的誤判或邊緣的偏移,因此圖像去噪是邊緣檢測(cè)中預(yù)處理的首要過程。
目前來說圖像去噪分為三大類:基于濾波器的方法(Filtering-Based Methods)、基于模型的方法(Model-Based Methods)和基于學(xué)習(xí)的方法(Learning-Based Methods)。本文選用基于濾波器方法中的高斯濾波對(duì)圖像進(jìn)行預(yù)處理。高斯濾波器是一種線性濾波器,對(duì)于圖像在輸入時(shí)隨機(jī)引入的噪聲有很好的抑制效果,對(duì)圖像起到平滑作用。在高斯濾波模板中,距離模板中心的越遠(yuǎn),對(duì)應(yīng)的模板系數(shù)越小,因此,相比于中值濾波和均值濾波等其他濾波方法,高斯濾波器對(duì)圖像的模糊程度較小,對(duì)于原圖像的完整程度保持的越好。
在高斯濾波中,認(rèn)為像素點(diǎn)跟鄰域像素是一種高斯分布的關(guān)系,將圖像與高斯核進(jìn)行卷積操作。
Mσ=M*Gσ
(17)
式(17)中,Mσ是高斯濾波后的結(jié)果,M是圖像像素矩陣,Gσ是標(biāo)準(zhǔn)差為σ的二維高斯核,定義為:
(18)
本文中采用σ為1,大小為5的高斯核,計(jì)算得到高斯核模板為:
0.0030.0130.0220.0130.0030.0130.0590.0970.0590.0130.0220.0970.1590.0970.0220.0130.0590.0970.0590.0130.0030.0130.0220.0130.003
利用高斯核模板與圖像進(jìn)行卷積操作,對(duì)圖像進(jìn)行平滑處理,處理過程如圖6所示。
圖像增強(qiáng)簡單來說就是采用一定的圖像處理方法增強(qiáng)圖像的對(duì)比度,來強(qiáng)調(diào)感興趣的特征,抑制不感興趣的特征,或者說突出圖像中的某些“有用”,壓縮其他“無用”信息,改善圖像的視覺效果,將圖像轉(zhuǎn)換為更適合人或計(jì)算機(jī)分析處理的形式。
目前現(xiàn)有的圖像增強(qiáng)方法歸納起來可以分為兩類:空間域法和頻域法。簡單概括起來,空間域就是指包含圖像像素的空間,空間域法是指在圖像像素的空間域中,或者說在圖像本身中,通過對(duì)圖像進(jìn)行線性或非線性運(yùn)算,達(dá)到增強(qiáng)圖像的像素灰度值的目的。頻域法是把圖像看做是一種二維信號(hào),對(duì)這種二維信號(hào)進(jìn)行傅里葉變換,從而達(dá)到對(duì)二維信號(hào)的增強(qiáng)。
直方圖均衡化是一種頻域圖像增強(qiáng)算法。對(duì)于圖像而言,直方圖反應(yīng)了圖像中不同灰度級(jí)像素出現(xiàn)的個(gè)數(shù)。由于拍攝或傳輸過程中各種因素的影響,原始圖像的直方圖中圖像像素的灰度值可能會(huì)集中在較窄的灰度區(qū)間內(nèi),造成圖像不夠清晰。例如,過度曝光的圖像,其灰度級(jí)集中在高亮度范圍內(nèi)。采用直方圖均衡化處理方法,可以把原始圖像的像素分布由集中分布變成均勻分布,增加圖像像素之間灰度值差別的動(dòng)態(tài)范圍,從而實(shí)現(xiàn)圖像整體對(duì)比度的增強(qiáng)。
圖7 直方圖均衡化前后對(duì)比
將圖像的灰度值的個(gè)數(shù)表示成一個(gè)一維的離散函數(shù),表達(dá)式為:
g(k)=nk,k= 0, 1, …L-1
(19)
式(19)中,nk是圖像中灰度級(jí)k的像素的個(gè)數(shù),L是圖像中灰度的總級(jí)數(shù)。那么,對(duì)應(yīng)的圖像灰度直方圖中,每一列的高度為nk。
對(duì)直方圖進(jìn)行歸一化,各個(gè)灰度級(jí)出現(xiàn)的相對(duì)頻率Fr(k)表示為:
Fr(k)=nk/N
(20)
式(20)中,N為圖像的總像素?cái)?shù)。
然后,計(jì)算圖像灰度的累積分布概率Sk。
(21)
最后,將歸一化的Sk乘以L-1,再四舍五入,得到均衡化后的圖像灰度值。
Tk=Sk×(L-1)
(22)
其中:Tk表示原始圖像中灰度級(jí)k經(jīng)過灰度值均衡化后的灰度值。
利用Kirsch算子的8個(gè)羅盤核分別與各個(gè)分量圖像進(jìn)行卷積運(yùn)算,然后求取每個(gè)卷積結(jié)果的絕對(duì)值,并計(jì)算這8個(gè)卷積絕對(duì)值的最大值,以此最大值作為窗戶中心像素(i,j)處的邊緣強(qiáng)度,最終圖像中所有像素點(diǎn)的邊緣強(qiáng)度為E。
利用式(11)由圖像的邊緣強(qiáng)度E計(jì)算所有像素點(diǎn)的平均邊緣強(qiáng)度,再根據(jù)公式(12)~(14)由平均強(qiáng)度計(jì)算得到高閾值和低閾值。
根據(jù)計(jì)算得到的高低雙閾值,對(duì)各個(gè)分量的邊緣強(qiáng)度圖進(jìn)行劃分處理,確定出各分量圖中的邊緣像素和背景像素,得到R分量邊緣、G分量邊緣和B分量邊緣。
假設(shè)在圖像的R、G、B三分量邊緣圖中,R分量圖中邊緣像素點(diǎn)的集合的UR,G分量圖中邊緣像素點(diǎn)的集合的UG,B分量圖中邊緣像素點(diǎn)的集合的UB。如果某個(gè)像素點(diǎn)在R、G、B三分量圖中至少在兩幅分量中是邊緣點(diǎn),則認(rèn)為該像素點(diǎn)是邊緣點(diǎn)。根據(jù)集合的容斥原理,對(duì)于RGB不同分量圖得到的邊緣圖像進(jìn)行融合。
Uedge=UR+UG+UB-UR∩UG-
UR∩UB-UB∩UG+UR∩UG∩UB
(23)
式中,Uedge表示融合后的圖像邊緣。
本文使用基準(zhǔn)數(shù)據(jù)集BSDS500數(shù)據(jù)集對(duì)實(shí)驗(yàn)進(jìn)行驗(yàn)證評(píng)估。BSDS500數(shù)據(jù)集有3個(gè)互不相交的子集,訓(xùn)練集(train)有200張圖像,測(cè)試集(test)有200張圖像,驗(yàn)證集(val)有100張圖像。因?yàn)楸疚乃惴ㄊ菬o監(jiān)督的算法,因此只選用了測(cè)試集中的200張圖像進(jìn)行實(shí)驗(yàn)驗(yàn)證。
本文隨機(jī)選取BSDS500數(shù)據(jù)集中的3幅圖來展示實(shí)驗(yàn)效果,如圖8所示。
圖8 邊緣檢測(cè)結(jié)果對(duì)比
由圖8可以看出,對(duì)于獨(dú)立的不同分量圖,其檢測(cè)出的邊緣是有差異的。如第一幅圖右側(cè)植物及陰影部分,B分量檢測(cè)出的邊緣細(xì)節(jié)相對(duì)更豐富完整。第二幅圖中蝴蝶的背景顏色主體為綠色,但由于顏色變換緩慢,所以在G分量邊緣圖中背景部分檢測(cè)到的邊緣像素點(diǎn)較少。第三幅圖中紅色汽車在R分量圖中車身邊緣出現(xiàn)偽邊緣的概率較小,且R分量邊緣更加連貫完整。
針對(duì)BSDS500數(shù)據(jù)集中的3幅圖,分別采用本文算法和其他4種的傳統(tǒng)算法Roberts、Laplacian、Sobel、Prewitt進(jìn)行邊緣檢測(cè),最終得到的檢測(cè)結(jié)果如圖9所示。
圖9 本文算法與其他算法的比較
由圖9的邊緣檢測(cè)結(jié)果可以看出,本文算法相比于其他算法檢測(cè)到的邊緣更加清晰,細(xì)節(jié)更加完整,邊緣連貫性更好,檢測(cè)率更高。
本文采用改進(jìn)的Kirsch算法,利用8個(gè)羅盤核模板對(duì)圖像進(jìn)行卷積分別求圖像梯度,然后取其結(jié)果最大的絕對(duì)值作為最終圖像梯度,提高了邊緣檢測(cè)率。其次,以圖像均值為參照,選取雙閾值進(jìn)行邊緣點(diǎn)的提取分割,極大地降低了偽邊緣的概率。然后,通過對(duì)不同色彩空間下分量圖進(jìn)行檢測(cè)處理,得到細(xì)節(jié)偏重不同的邊緣結(jié)果圖。最后,對(duì)R、G、B不同分量的檢測(cè)結(jié)果進(jìn)行邊緣融合,從而得到最終的檢測(cè)結(jié)果。
實(shí)驗(yàn)BSDS500數(shù)據(jù)集中的200張測(cè)試集圖像對(duì)本文算法進(jìn)行了驗(yàn)證,并與其他幾張檢測(cè)算法的檢測(cè)結(jié)果進(jìn)行了比較,通過比較得出以下幾點(diǎn)結(jié)論:
1)本文算法適用于大多數(shù)常見的普通圖像,可用于包括人物、植物、建筑、昆蟲等圖像的邊緣檢測(cè),普適性強(qiáng)。
2)由不同色彩空間檢測(cè)結(jié)果可以看出,同一幅圖像不同彩色空間分量圖的邊緣檢測(cè)結(jié)果存在差異,有的分量檢測(cè)結(jié)果偏重細(xì)節(jié),有的分量檢測(cè)結(jié)果偏重主體信息,且細(xì)節(jié)的偏重存在局部性差異。這些差異均來自圖像整體色調(diào)的差異以及照片采集時(shí)光照的影響。本文算法正是以此為依據(jù),首先對(duì)圖像的各分量圖進(jìn)行邊緣檢測(cè),再將檢測(cè)結(jié)果進(jìn)行融合得到最終的檢測(cè)結(jié)果。
3)由本文算法與其他算法的比較結(jié)果可以看出,本文算法相比于其他算法檢測(cè)到的邊緣更加清晰,細(xì)節(jié)更加完整,邊緣連貫性更好,檢測(cè)率更高。