華中農(nóng)業(yè)大學(xué)工學(xué)院 尚正海 文友先
基于計(jì)算機(jī)視覺(jué)的咸蛋圖像邊緣檢測(cè)算法研究
華中農(nóng)業(yè)大學(xué)工學(xué)院 尚正海 文友先
圖像的邊緣是圖像最基本的特征,它能反映出圖像中目標(biāo)對(duì)象的許多形狀特征參數(shù),是進(jìn)行圖像后續(xù)處理的前提和基礎(chǔ)。長(zhǎng)期以來(lái),人們一直在尋找一種高效、定位精確、不漏檢真邊緣又不引入假邊緣的檢測(cè)方法。
根據(jù)神經(jīng)學(xué)原理,人的視覺(jué)對(duì)場(chǎng)景中亮度變化或者其他性質(zhì)變化較快的部位比較敏感,當(dāng)人們觀(guān)察場(chǎng)景時(shí)總是先注意到其中不同物體的輪廓,以達(dá)到對(duì)圖像一個(gè)整體的理解。因此圖像中大部分信息都集中在區(qū)域的邊緣上,邊緣像素對(duì)圖像的理解具有十分重要的作用。
邊緣檢測(cè)是機(jī)器視覺(jué)和圖像處理中一個(gè)經(jīng)典的研究課題,目前已經(jīng)有了許多相關(guān)檢測(cè)方法。有基于門(mén)限閾值的檢測(cè)方法;基于梯度的檢測(cè)方法,比如說(shuō) Roberts,Sobel,Prewitt,Laplacian;數(shù)學(xué)形態(tài)學(xué)法;小波分析法;模糊算子法;神經(jīng)網(wǎng)絡(luò)法。其中基于梯度的邊緣檢測(cè)方法最為普遍,用的也最多。本文基于其中的一些算子對(duì)咸蛋進(jìn)行邊緣檢測(cè),為后面的咸蛋檢測(cè)分級(jí)提供一定的理論基礎(chǔ)。
所謂邊緣是指周?chē)袼鼗叶扔须A躍變化或者屋頂變化的那些像素的集合。圖像的邊緣是由灰度不連續(xù)性所反映的。邊緣提取就是檢出圖像局部特性的不連續(xù)性,然后將這些不連續(xù)的邊緣像素連接成完整的邊界,它是底層視覺(jué)處理中最重要的環(huán)節(jié)之一。經(jīng)典的邊緣提取方法是由灰度不連續(xù)性所反映的,考察圖像中每個(gè)像素在某個(gè)臨域中灰度的變化,利用邊緣鄰近一階或二階方向倒數(shù)變化規(guī)律。
圖1-1為Roberts邊緣檢測(cè)算子。Roberts邊緣檢測(cè)算子是一種利用局部差分尋找邊緣的算子,它的梯度可根據(jù)一對(duì)互相垂直方向上的差分來(lái)計(jì)算。該算子定位精度高,在水平和垂直方向的效果較好,但是存在對(duì)噪聲敏感的缺陷。
圖1-1 Roberts邊緣檢測(cè)算子
圖1-2為Sobel邊緣檢測(cè)算子。Sobel邊緣檢測(cè)算子由2個(gè)卷積模板構(gòu)成,一個(gè)模板對(duì)垂直邊緣響應(yīng)最大,另一個(gè)模板對(duì)水平邊緣響應(yīng)最大。圖像中的每個(gè)像素點(diǎn)都用這2個(gè)模板做卷積,2個(gè)卷積的最大值作為該點(diǎn)的輸出。該算子通常對(duì)灰度漸變和噪聲較多的圖像處理得效果比較好。
圖1-2 Sobel邊緣檢測(cè)算子
圖1-3為Prewitt邊緣檢測(cè)算子。Prewitt邊緣檢測(cè)算子和使用Sobel邊緣檢測(cè)算子的方法一樣,對(duì)圖像中每個(gè)像素點(diǎn)都使用2個(gè)模板做卷積,取最大值作為其輸出。該算子不僅能檢測(cè)邊緣點(diǎn),而且還能抑制噪聲的影響,所以對(duì)于灰度和噪聲較多的圖像處理得比較好。
圖1-3 Prewitt邊緣檢測(cè)算子
圖1-4是常用的Laplacian算子。它是n維歐幾里德空間中的一個(gè)二階微分算子,具有各向同性,即與坐標(biāo)軸方向無(wú)關(guān),坐標(biāo)軸旋轉(zhuǎn)后梯度結(jié)果不變。該算子為二階差分算子,當(dāng)方向信息丟失時(shí),會(huì)產(chǎn)生雙像素,因此對(duì)噪聲會(huì)有雙倍加強(qiáng)的作用,故較少用于邊緣檢測(cè)。
圖1-4 Laplacian邊緣檢測(cè)算子
圖1-5所示為5×5模板高斯拉普拉斯算子。Gauss-Laplacian邊緣檢測(cè)算子是將高斯平滑濾波器和拉普拉斯銳化濾波器結(jié)合的邊緣檢測(cè)算子,它能先平滑掉邊緣噪聲,再進(jìn)行邊緣檢測(cè)。該算子是Gauss算子和Laplacian算子的結(jié)合,因此既具備Gauss算子的平滑特點(diǎn)又具備Laplacian算子銳化的特點(diǎn)。
圖1-5 高斯—拉普拉斯邊緣檢測(cè)算子
圖1-6是Krisch邊緣檢測(cè)算子模版。Kirsch邊緣檢測(cè)算子與之前描述的Sobel和Prewitt算子最大的區(qū)別是它具有8個(gè)卷積核,每個(gè)卷積核都對(duì)應(yīng)一個(gè)特定邊緣方向。圖像的每個(gè)像素點(diǎn)都用這8個(gè)掩模進(jìn)行卷積,8個(gè)方向的最大值即為邊緣幅度圖像的輸出。該算子在保持細(xì)節(jié)和抗噪聲方面都有較好的效果,但得到的圖像邊緣仍存在連續(xù)性較差的問(wèn)題。
在Visual C++6.0開(kāi)發(fā)平臺(tái)下,采用上述幾種邊緣提取算子對(duì)咸蛋進(jìn)行邊緣特征提取。
從上圖可以看出,Roberts算子和Laplacian算子檢測(cè)邊緣比較細(xì)但有不連續(xù)情況,Krisch算子和 Gause-Laplacian算子雖然連續(xù)但是邊緣比較粗,使用Sobel算子和Prewitt算子的效果相對(duì)比較好。
本文是在Visual C++6.0開(kāi)發(fā)平臺(tái)上利用上述算子對(duì)咸蛋的邊緣進(jìn)行檢測(cè),運(yùn)行速度快,可為后面的咸蛋分級(jí)研究提供一定的理論基礎(chǔ)。和人類(lèi)的視覺(jué)能力比較,圖像技術(shù)的發(fā)展還相差甚遠(yuǎn),還有大量的研究工作要做。
2010-09-08)