■ 李 娟 夏 彬 劉妍妍〔湖北省纖維檢驗局,武漢 43006〕〔鄭州棉麻工程技術設計研究所科研創(chuàng)新中心,鄭州450004〕
?
棉花圖像分割方法的比較與分析
■李娟1夏彬2劉妍妍2
〔1湖北省纖維檢驗局,武漢430061〕〔2鄭州棉麻工程技術設計研究所科研創(chuàng)新中心,鄭州450004〕
近年來,隨著多媒體技術與計算機技術的飛速發(fā)展,機器視覺檢測系統(tǒng)在棉花加工、檢驗領域得到應用。該系統(tǒng)通過工業(yè)相機以及計算機的方式,采用數(shù)字圖像處理技術代替人眼對目標進行分析、識別與測量,能夠有效克服人工方式的不足,提高生產(chǎn)效率,具有廣泛的應用前景。在機器視覺檢測系統(tǒng)中,圖像分割是基礎,而基于邊緣的分割方法也是圖像分割與模式識別的重要內(nèi)容,對檢測的效果有著重要影響。
本文針對棉花圖像分割方法進行研究,分別采用Sobel算子和Canny算子對顏色級為淡點污棉二級棉花圖像進行圖像分割實驗,并對實驗結(jié)果進行比較與分析,為棉花圖像分割方法的選取以及棉花圖像目標識別提供參考依據(jù)。
圖像分割是指根據(jù)灰度、顏色、幾何形狀以及空間紋理等特征把圖像劃分成若干互不交迭的區(qū)域,使得在同一區(qū)域內(nèi)這些特征呈現(xiàn)出相似性,而在不同區(qū)域間呈現(xiàn)出明顯的差異性。簡而言之,就是在一幅圖像中,把要檢測或者識別的目標從背景中分離出來,以便進行下一步處理。當前國內(nèi)外廣泛使用的圖像分割方法主要可分為基于邊緣分割、基于閾值分割、基于特定理論、基于區(qū)域生長分割等方法。
邊緣是圖像最重要的特征之一,在數(shù)字圖像中,邊緣表現(xiàn)為局部范圍灰度的劇烈突變,它是由那些周圍象素灰度有階躍變化或屋頂變化的象素點構成的集合。邊緣檢測的基本思想是首先通過使用邊緣增強算子,重點突出圖像中的局部邊緣,然后定義象素的邊緣強度,通過選取閾值的方法提取邊緣點集合。常用的邊緣檢測算法有Sobel算子、Canny算子等。
(一)方法選取
1.Sobel算子
Sobel算子是常用的檢測算子,它包括兩個方法,一個是檢測水平邊沿的;另一個是檢測垂直平邊沿的。與其它梯度算子相比,Sobel算子對于象素的位置的影響做了加權,從而提高了檢測效果。
Sobel算子利用象素點上下、左右鄰點的灰度加權方法,根據(jù)在邊緣點處達到極值這一現(xiàn)象進行邊緣的檢測。該方法不僅能產(chǎn)生較好的邊緣檢測效果,而且對噪聲具有平滑作用,所以可以提供較為精確的邊緣方向信息。當使用大的領域時,抗噪聲特性更好,但計算量也會隨之增大,容易檢測出偽邊緣,定位精度也不高。
2.Canny算子
Canny算子是通過尋找圖像梯度的局部極大值,采用高斯函數(shù)的一階微分來計算梯度。其分割方法的主要步驟是:
(1)首先使用高斯濾對圖像進行平滑處理;
(2)然后采用一階偏導的有限差分來計算梯度的幅值和方向;
(3)最后對梯度的幅值進行非極大值抑制,并且通過雙閾值方法進行檢測邊緣和連接邊緣。
下面將對Canny算子檢測原理做詳細說明。假設采用I[i,j]表示圖像,使用可分離濾波方法求圖像與高斯平滑濾波器卷積,得到的結(jié)果是一個已平滑數(shù)據(jù)陣列:
其中,σ是高斯函數(shù)的散布參數(shù),它影響著平滑程度。
平滑數(shù)據(jù)陣列S[i,j]的梯度可以采用2×2一階有限差分近似式來計算x與y偏導數(shù)的2個陣列P[i,j]和Q[i,j]:
在這個2×2正方形內(nèi)求有限差分的均值,以便在圖像中的同一點計算x和y的偏導數(shù)梯度。幅值和方位角可用直角坐標到極坐標的坐標轉(zhuǎn)化公式來計算:
其中的反正切函數(shù)使用兩個參量表示一個角度,它的取值范圍是整個圓周。梯度的方向和幅度可以根據(jù)查找表由偏導數(shù)計算。反正切函數(shù)的大多數(shù)計算使用的是定點運算,很少的幾個計算是基本浮點運算,其中的浮點運算是由整數(shù)和定點算術通過軟件實現(xiàn)的。在計算中盡量不用浮點運算可以提高效率。Canny算法不容易受噪聲的干擾,能夠在邊緣檢測和噪聲抑制之間取得較好的平衡,更能檢測出真正的弱邊緣,具有優(yōu)越的檢測性能。
(二)實驗平臺
實驗選取顏色級為淡點污棉二級的棉花作為樣本,通過CMOS工業(yè)相機采集圖像,圖像尺寸為JPEG格式,1960×980像素,位深度24位。
實驗硬件平臺是在聯(lián)想計算機上進行的,該計算機配備CORE i5 CPU,4GB內(nèi)存,1TB硬盤。
實驗軟件運行于Windows 7操作系統(tǒng)上,采用Visual C++ 2010調(diào)用OpenCV的方法進行程序?qū)崿F(xiàn)。Microsoft Visual C++是微軟公司推出的高性能集成開發(fā)環(huán)境程序,它面向?qū)ο蟮目梢暬删幊棠J?,具有程序框架自動生成、靈活方便的類管理、代碼編寫以及界面設計集成互操作、可開發(fā)多種程序等優(yōu)點。OpenCV是一個基于開源的跨平臺機器視覺庫,可以運行在Windows、Linux和Mac OS操作系統(tǒng)之上,具有輕量級、快捷高效等特點,能夠?qū)崿F(xiàn)計算機視覺和圖像處理領域的通用算法。
(三)實驗內(nèi)容
1.使用實驗程序采集淡點污棉二級棉花圖像;
2.使用Sobel邊緣檢測算子對圖像進行分割,并將結(jié)果進行反色處理;
3.使用Canny邊緣檢測算子對圖像進行分割,并將結(jié)果進行反色處理。
(四)實驗結(jié)果
實驗對淡點污棉二級棉花圖像作為樣本,采集到的棉樣圖像如圖1所示。
圖1 棉花樣本原始圖像
按照上述實驗內(nèi)容,采用邊緣檢測算子對所選棉樣圖像進行分割的結(jié)果如下:圖2為使用Sobel邊緣檢測算子圖像分割結(jié)果,圖3為使用Canny邊緣檢測算子圖像分割結(jié)果。
圖2 Sobel算子分割結(jié)果
圖3 Canny算子分割結(jié)果
從分割結(jié)果可以看出,Sobel算子會將虛假的邊緣檢測出來,容易出現(xiàn)誤檢的情況;而Canny算子能夠檢測到真實的圖像邊緣,使虛假邊緣得到最大抑制,具有較高的信噪比,同時檢測出的邊緣點會附著在實際邊緣的中心,具有精準的定位。
根據(jù)棉花圖像分割實驗結(jié)果并結(jié)合邊緣算子原理,對棉花圖像分割方法比較和分析如下:
1.Sobel算子和Canny算子都屬于一階微分方法,它們都通過計算像的梯度值來增強圖像,通過對梯度按閾值取舍的方法檢測邊緣。
2.Sobel算子產(chǎn)生的邊緣較粗,Canny算子產(chǎn)生的邊緣較細。Canny算子是通過對梯度方向上的非局部極大值點進行抑制而達到這個效果,而Sobel算子比Canny算子更容易受到噪聲的影響。
3.在梯度值的計算中,Canny算子使用了有限差分近似來計算梯度的大小與方向,而Sobel算子只需要知道梯度的大小。Sobel算子所用的梯度閾值比Canny算子中的閾值要高很多。
4.由于Canny算子進行了“非極大值抑制”和形態(tài)學連接操作,使其提取的邊緣連續(xù)性較好,因此,效果明顯優(yōu)于其他算子。
圖像分割是數(shù)字圖像處理的基礎,而基于邊緣檢測的分割方法又是圖像分割與模式識別的重要內(nèi)容。本文針對邊緣檢測在棉花圖像分割和目標識別領域中的重要性,采用邊緣檢測算法中的Sobel算子、Canny算子分別對淡點污棉二級棉花圖像進行研究,在分割實驗中對各算子數(shù)據(jù)進行了比較與分析。實驗結(jié)果表明,與Sobel算子相比,由于Canny算子采用了“非極大值抑制”和形態(tài)學連接操作的方法,更容易獲取連續(xù)的圖像邊緣,因此,其分割效果要優(yōu)于其它算子,特別適用于棉花雜質(zhì)圖像的分割。