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