肖文東,馬本學
(石河子大學機械電氣工程學院,石河子832003)
基于OpenCV哈密瓜紋理特征的提取
肖文東,馬本學
(石河子大學機械電氣工程學院,石河子832003)
采用400~1000 nm高光譜成像儀獲取哈密瓜高光譜圖像,并選取哈密瓜紋理特征圖像,在VC++6.0環(huán)境下利用開源計算機視覺庫OpenCV進行編程,通過對圖像的形態(tài)學去噪、平滑處理、消除背景以及二值化處理,獲取哈密瓜紋理的二值化圖像,實現(xiàn)了對哈密瓜高光譜圖像紋理特征的提取。實驗結(jié)果表明:該方法可以快速有效地實現(xiàn)哈密瓜紋理特征提取。
OpenCV;高光譜圖像 ;哈密瓜;紋理
哈密瓜是新疆重要的瓜果之一。由于其經(jīng)濟價值高,是農(nóng)民重要的增收途徑之一。哈密瓜品質(zhì)分級檢測是影響哈密瓜品質(zhì)及銷售的重要環(huán)節(jié),長期以來,哈密瓜的檢測方法一直采用原始的人工分級,檢測效率低、速度慢并且很難精確評價其品質(zhì),在一定程度上影響了哈密瓜市場上的競爭力[1]。
高光譜圖像技術(shù)集成光譜分析和數(shù)字圖像技術(shù)二者的優(yōu)勢,其光譜技術(shù)能檢測哈密瓜的內(nèi)部品質(zhì)(糖度、堅實度及成熟度)等,圖像技術(shù)又能全面反映哈密瓜的外在特征(表面缺陷、大小及網(wǎng)紋)等。所以高光譜圖像技術(shù)能對哈密瓜的內(nèi)外部特征進行全面分析。哈密瓜條帶與網(wǎng)紋的整齊性以及網(wǎng)紋品種的網(wǎng)紋率是哈密瓜品質(zhì)分級的重要指標[2]。因此,研究哈密瓜紋理特征提取具有重要意義。
OpenCV是由Intel公司面向應(yīng)用程序開發(fā)者開發(fā)的開放式圖像處理及計算機視覺函數(shù)庫。與其它圖像函數(shù)庫相比,OpenCV是一種源碼開放式的函數(shù)庫,開發(fā)者可以自由地調(diào)用函數(shù)庫中的相關(guān)處理函數(shù)。OpenCV中包含300多個處理函數(shù)[3-4],具備強大的圖像和矩陣運算能力,可以大大減少開發(fā)者的編程工作量,有效提高開發(fā)效率和程序運行的可靠性。OpenCV實現(xiàn)了大量通用算法,涉及到圖像處理、結(jié)構(gòu)分析、運動檢測、攝像機定標、三維重建以及機器學習等方面,并有較高的運行效率。
OpenCV作為開放的計算機視覺資源代碼,提供了豐富的圖像及計算機視覺處理函數(shù),為數(shù)字圖像處理、計算機視覺技術(shù)應(yīng)用提供了極大的方便。目前,國內(nèi)已有學者利用OpenCV實現(xiàn)了計算機視覺圖像處理技術(shù)。王福斌等[5]利用OpenCV實現(xiàn)了對采集圖像進行邊緣檢測及角點探測等技術(shù);謝捷如等[6]利用OpenCV通過對蘋果和橘子的外形特征的提取和分析,達到機器自動識別的目的;劉雙喜等[7]在OpenCV環(huán)境下應(yīng)用一種改進型粗糙集理論,實現(xiàn)了對棉花異性纖維圖像特征提取。本文以哈密瓜為研究對象,采用高光譜圖像分析技術(shù),在高光譜成像儀采集哈密瓜圖像的基礎(chǔ)上,通過OpenCV來檢測哈密瓜的紋理特征,為進一步利用高光譜圖像技術(shù)檢測哈密瓜的綜合品質(zhì)提供基礎(chǔ)支持。
利用高光譜成像儀獲取的哈密瓜高光譜圖像可看成是一個擁有多個層面、按波段順序疊合構(gòu)成的圖像立方體,所包含的數(shù)據(jù)量非常大。因此,需尋找最能表征哈密瓜紋理特征波長下的圖像,壓縮圖像信息,以便于后續(xù)處理。經(jīng)過多次圖像處理,選擇合理的數(shù)據(jù)處理算法[8-9],找到最能表征哈密瓜紋理的特征圖像(圖1)。
圖1 哈密瓜紋理特征圖像粉得率的影響Fig.1 Texture feature imaging of Hami melon
哈密瓜圖像紋理特征提取技術(shù)主要有四個步驟:形態(tài)學去噪、平滑處理、去除背景以及閾值分割。
1.2.1 形態(tài)學去躁
數(shù)學形態(tài)學方法與其它空域、頻域圖像處理和分析方法相比具有一些明顯優(yōu)勢,能有效濾除噪聲的同時還能保留圖像中的原有信息。圖像形態(tài)學是一類位不變的并行圖像處理,可對圖像進行實時處理[10]。
形態(tài)學運算是針對二值圖像的圖像處理方法,基本的形態(tài)學運算是膨脹和腐蝕。膨脹和腐蝕不是互為逆運算,二者可以級聯(lián)結(jié)合使用。在實際的圖像處理過程中,常以各種組合的形式來使用膨脹和腐蝕。先對圖像進行腐蝕然后膨脹其結(jié)果,稱為開啟運算。開啟運算符為°,A用B來開啟寫作A°B,其定義為:A°B=(AΘB)⊕B。先對圖像進行膨脹然后腐蝕其結(jié)果,稱為閉合運算。閉合運算符為·,A用B來閉合寫作A·B,其定義為:A·B=(AΘB)⊕B。對讀入的圖像分別進行了腐蝕、膨脹、開啟運算和閉合運算。結(jié)果發(fā)現(xiàn)進行開啟運算效果較好,它具有消除細小物體,在纖細處分離物體和平滑較大物體邊界的作用。以達到彌合輪廓缺陷,去除毛刺,平滑輪廓,消除噪聲等效果。
1.2.2 平滑處理
圖像的平滑是一種實用的數(shù)字圖像處理技術(shù),主要目的是為了減少圖像噪聲。在獲取哈密瓜高光譜圖像時,由于輸送裝置以及周圍環(huán)境的影響,會產(chǎn)生噪音,而通過平滑處理能夠很好地減少噪音的影響,保證圖像的清晰度。
中值濾波是基于排序統(tǒng)計理論的一種能有效抑制噪聲的非線性信號處理技術(shù),中值濾波的基本原理是把數(shù)字圖像或數(shù)字序列中一點的值用該點的一個臨域中各點值的中值代替,讓周圍的像素值接近的真實值,從而消除孤立的噪聲點。
1.2.3 去除背景
獲取哈密瓜高光譜圖像時,由于外部環(huán)境、相機的結(jié)構(gòu)以及背景的選取等因素,獲取圖像的過程中往往會引入噪聲。如果不有效去除這些噪聲,將嚴重影響圖像的主觀質(zhì)量,并對處理和分析圖像也帶來很大的視覺差異。選取的背景不同,對于結(jié)果分析造成一定的影響,因此要去除圖像的背景。
去除圖像背景中,為了便于處理及存儲,通過對圖像像素點的灰度值操作實現(xiàn)背景提取?;诟吖庾V成像儀獲取的哈密瓜圖像每個像素點在RGB空間是一個三維矢量,把RGB圖像轉(zhuǎn)換為灰度圖像后估計圖像背景,利用OpenCV函數(shù)庫中的函數(shù)從原圖像中減去背景圖像,去除圖像背景的影響。
1.2.4 閾值分割
閾值分割法是一種基于區(qū)域的圖像分割技術(shù),其基本原理是:設(shè)定不同的特征閾值,把圖像像素點分為若干類。圖像閾值化的目的是按照灰度級對像素集合進行劃分,得到的每個子集形成一個與現(xiàn)實景物相對應(yīng)的區(qū)域,各區(qū)域內(nèi)部具有一致的屬性,而相鄰區(qū)域布局有這種一致屬性。這樣的劃分可以通過從灰度級出發(fā)選取一個或多個閾值來實現(xiàn)。
OpenCV提供了兩種閾值分割方法。一種是固定閾值分割cvThreshold,另一種是自適應(yīng)閾值分割cvAdaptiveThreshold。要實現(xiàn)哈密瓜紋理特征提取,通過背景分割得到黑白二值圖像。采用固定閾值分割cvThreshold方法,確定分割閾值,順序讀取圖像各像素點灰度值并與閾值比較,凡大于等于閾值的用1代替,否則以0代替。
利用OpenCV提供強大的圖像處理函數(shù)來對獲取的哈密瓜高光譜圖像進行一系列的處理分析,最后得到哈密瓜的紋理輪廓,工作流程圖如圖2所示。
圖2 圖像處理工作流程Fig.2 Image processing of work flow chart
從文件中讀取圖像的語句為:
要實現(xiàn)顯示一幅圖像,首先應(yīng)創(chuàng)建窗口,然后再顯示,實現(xiàn)的函數(shù)為:
其中,src是定義的窗口標題名稱,PImage是讀取的圖像。當CV_WINDOW_AU TOSIZE參數(shù)為1時,表示窗口的大小會自動調(diào)整以適合被顯示的圖像;為0時則自動按上一次OpenCV使用的大小呈現(xiàn)窗口尺寸。
讀取原圖像以及轉(zhuǎn)化為灰度圖像如下圖3所示。
圖3 讀取的原始圖像及轉(zhuǎn)化為灰度圖像Fig.3 The original images and gray images
腐蝕和膨脹的函數(shù)分別為cvErode(src,dst,element,iterations)和cvDilate(src,dst,element,iterations),其中src為輸入圖像,dst為輸出圖像(dst可以為 src) ,element為結(jié)構(gòu)元素,如果為NULL,則使用3×3的矩形結(jié)構(gòu)元素,iterations為運算次數(shù)[11-12]。將腐蝕和膨脹級聯(lián)結(jié)合使用以達到開、閉運算目的,OpenCV中使用如下函數(shù)實現(xiàn)操作:
采用開運算,先進行腐蝕再進行膨脹,其中p K-ernel為創(chuàng)建的結(jié)構(gòu)元素,iterations為運算次數(shù),設(shè)iterations=1。
平滑處理函數(shù)為:cvSmooth(src,dst,smoothtype,param1,pa2ram2,param3,param4) ,其中smoothtype標志采用的平滑處理方法,采用中值濾波,因此設(shè)置為CV_MEDIAN,對圖像進行核大小param1×param1的中值濾波,設(shè)置param1=3,其余參數(shù)設(shè)置為0。
經(jīng)處理后的圖像如圖4所示。
圖4 去噪及平滑后的圖像Fig.4 Image after denoising and smoothing
對平滑后的圖像進行開、閉運算后發(fā)現(xiàn),開運算對圖像特征提取較好,故采用開運算。
估計背景圖像的語句如下:
估計背景圖像后,利用cvSub函數(shù)從原圖像中減去背景,用法為:
其中,src1是第1個原數(shù)組,src2是第2個原數(shù)組,dst輸出數(shù)組,mask操作覆蓋面(8-bit單通道數(shù)組)。函數(shù)cvSub從一個數(shù)組減去別一個數(shù)組:dst(I)=src1(I)-src2(I),if mask(I)!=0除覆蓋面外所有數(shù)組都必須有相同的類型,相同的大小(或ROI大小)。
經(jīng)處理后的圖像如圖5所示。
圖5 消除背景影響Fig.5 Image of eliminating background
閾值分割函數(shù)[13]為:
cvThreshold(src,dst,threshold,max_value,threshold_type),
其中threshold_type設(shè)置為CV_THRESH_B INARY,采用二值化濾波,threshold為閾值,max_value為最大值。當src(x,y)>threshold時,dst(x,y)=max_value,否則dst(x,y)=0。根據(jù)實際情況,經(jīng)過多次實驗,取 threshold=40,max_value=255。
經(jīng)過閾值分割后的二值化圖像如圖6所示。
圖6 二值化閾值分割提取紋理Fig.6 Segmentation for texture feature extraction
本文對獲取的哈密瓜高光譜圖像利用OpenCV強大的函數(shù)庫,通過對圖像的形態(tài)學去噪、平滑處理、消除圖像背景以及二值化閾值分割等處理,得到了比較理想的哈密瓜的紋理圖像,為水果的分級處理打下了良好的基礎(chǔ)。同時,提出一種基于OpenCV的高光譜圖像水果檢測方法,該算法復(fù)雜度不高,并易于實現(xiàn),加上OpenCV庫設(shè)計高效率性,可以快捷地實現(xiàn)圖像的處理;給出一些關(guān)鍵代碼,可借鑒于其它同類水果檢測中。
[1]李少昆,王崇桃.圖像及機器視覺技術(shù)在作物科學中的應(yīng)用進展[J].石河子大學學報:自然科學版,2002,6(1):79-86.
[2]全國原產(chǎn)地域產(chǎn)品標準化工作組.GB/T 23398-2009地理標志產(chǎn)品哈密瓜[S].北京:中國標準出版社,2009.
[3]Intel Corporation.Intel open source computer vision library reference Manual,2001.
[4]YU Qingcang,CHENG Harry H,CHENG Wayne W,et a1.CH OpenCV for Interactive Open Architecture Computer Vision[J].Advances in Engineering Software,2004.35(9):527-536.
[5]王福斌,李迎燕,劉杰,等.基于OpenCV的機器視覺圖像處理技術(shù)實現(xiàn)[J].機械與電子,2010(6):54-57.
[6]謝捷如,王震.機器視覺試驗平臺的研究與開發(fā)[J].電子測量技術(shù),2008,31(7):1-4.
[7]劉雙喜,張馨,鄭文秀,等.棉花異性纖維圖像特征提取[J].農(nóng)業(yè)機械學報,2010,41(3):158-162.
[8]趙杰文,劉建華,陳全勝,等.利用高光譜圖像技術(shù)檢測水果輕微損傷[J].農(nóng)業(yè)機械學報,2008,39(1):106-109.
[9]田有文,李天來,張琳,等.高光譜圖像技術(shù)診斷溫室黃瓜病害的方法[J].農(nóng)業(yè)工程學報,2010,26(5):202-206.
[10]馬本學.基于數(shù)學形態(tài)學的香梨果梗提取方法[J].石河子大學學報:自然科學版,2008,26(5):636-638.
[11]左飛,萬晉森,劉航.Visual C++數(shù)字圖像處理開發(fā)入門與編程實踐[M].北京:電子工業(yè)出版社,2008:550-584.
[12]陳勝勇,劉盛.基于OpenCV的計算機視覺技術(shù)實現(xiàn)[M].北京:科學出版社,2009:151-161.
[13]劉慧英,王小波.基于OpenCV的車輛輪廓檢測[J].科學技術(shù)與工程.2010,10(12):2987-2991.
The Image Texture Extraction of Hami Melon Based on OpenCV
XIAO Wendong,MA Benxue
(College of Mechanical and Electrical Engineering,Shihezi University,Xinjiang 832003,China)
The hyper-spectral image of Hami melon was obtained and the image of Hami melon texture extraction was selectecl by using the hyper-spectral imaging system(400 nm and 1000 nm).Through morphology denoising,image smoothing,binary background eliminating and binaryzing processing based on VC++and the open source computer vision library OpenCV,the binary image of Hami melon texture was obtained.Then the Hami melon hyperspectral image texture feature extraction was realized in VC++6.0 programming environment.Experimental results show that the methods can achieve the Hami melon texture extraction effectively.
OpenCV;hyperspectral image;Hami melon;texture
TP391.41 < class="emphasis_bold">文獻標識碼:A
A
2010-09-09
北京大學對口支援石河子大學師資培養(yǎng)專項資金支持項目
肖文東(1985-),男,碩士研究生,專業(yè)研究方向:數(shù)字圖像處理及模式識別;e-mail:xwd_shz@sina.com。
馬本學(1970-),男,教授,從事農(nóng)產(chǎn)品品質(zhì)無損檢測及裝備研究;e-mail:mbx_shz@163.com。