張春玲,楊新年,向洪波,彭燕博,張 偉
(黑龍江工業(yè)學(xué)院 電氣與信息工程學(xué)院,黑龍江 雞西 158100)
農(nóng)業(yè)生產(chǎn)中,葉面積指數(shù)作為植物的光和作用的重要指標(biāo),直接影響農(nóng)作物的產(chǎn)量。葉面積指數(shù)通常根據(jù)樹葉面積進(jìn)行測量。本研究通過計(jì)算樹葉的面積,了解植物的光合作用情況,從而調(diào)整農(nóng)作物間距。本研究意義在于通過對農(nóng)作物合理密植、適當(dāng)修剪等方式提高農(nóng)作物產(chǎn)量。傳統(tǒng)的面積測量方法:(1)方格法。步驟為繪制樹葉輪廓,計(jì)算方格個(gè)數(shù)。方格法工作量繁瑣,任務(wù)量大。(2)葉面積儀法。此方法雖然測量較快,但成本費(fèi)用高,而且設(shè)備維修較難。目前,不規(guī)則樹葉面積的測量成本高、測量過程繁瑣。本研究采用數(shù)字圖像的方法測量樹葉面積,耗時(shí)低、測量準(zhǔn)確,能在農(nóng)業(yè)生產(chǎn)中應(yīng)用,同時(shí)可以幫助農(nóng)戶提高收益。
樹葉面積測量首先采集春季杏樹葉片,將樹葉按順序標(biāo)號并固定在網(wǎng)格紙上。采集的樹葉圖像直接計(jì)算面積誤差較大,圖像需要進(jìn)行預(yù)處理才能使用。本文采用形態(tài)學(xué)開運(yùn)算和中值濾波去除噪音[1]。無噪音數(shù)據(jù)樣本通過大津閾值分割算法,分為前景和背景兩大類。前景圖像用于提取圖像輪廓特征,并計(jì)算像素面積。本研究根據(jù)像素坐標(biāo)和世界坐標(biāo)關(guān)系,計(jì)算出世界坐標(biāo)系中樹葉面積,比較測量面積與實(shí)際面積,計(jì)算測量誤差率?;玖鞒倘鐖D1所示。
圖1 圖像處理流程
數(shù)據(jù)采集步驟如下:(1)采集30片春季杏樹葉片作為樣本。(2)為了計(jì)算測量的樹葉面積準(zhǔn)確率,將每6片樹葉固定在1 mm×1 mm的方格紙上,共計(jì)5頁30片樹葉。(3)用書把方格紙壓平,通過拍照得到原始樹葉圖像。每張方格紙背面標(biāo)明頁碼1~5。樣本圖像分別為1,2,……,30。
采集的樹葉樣本圖像有方格線、蟲洞等噪音,需要經(jīng)過預(yù)處理,才能使用,樹葉圖像預(yù)處理步驟如下。
1.2.1 灰度處理
原始圖像以BGR3通道格式存儲(chǔ),B,G,R分別代表3種顏色,分別為藍(lán)色、綠色和紅色[2]。每個(gè)通道都是8位二進(jìn)制數(shù)來存儲(chǔ)信息,數(shù)值被量化0~255之間。假設(shè)原始圖像為80×80的像素,采用BGR格式存儲(chǔ)每個(gè)像素都需要3個(gè)值,3通道格式圖像計(jì)算量較大,通常先將原始圖像轉(zhuǎn)化為灰度圖像,再進(jìn)一步處理?;叶葓D像只有一個(gè)通道,灰度值范圍為0~255?;叶扰cBGR之間轉(zhuǎn)換關(guān)系如下:Gray=0.299×R+0.587×G+0.114×B。
1.2.2 仿射變換
方格紙位于采集圖像中間,需要剪切原始圖像。由于傾斜角度的原因,采集圖像方格紙邊緣與預(yù)制矩形框不能對齊。本研究通過構(gòu)造變換矩陣,對原始圖像中方格紙區(qū)域進(jìn)行變換,得到矩形方格紙的數(shù)字圖像。
仿射變換是將一個(gè)平面的點(diǎn)映射到另一個(gè)平面內(nèi)的二維投影,具有很強(qiáng)的實(shí)用性,主要由旋轉(zhuǎn)、平移、縮放等原子操作組成[3]。理論上至少需要6個(gè)方程聯(lián)立求解,即3組點(diǎn)集對。圖像糾偏是原始圖像經(jīng)過2×3維變換矩陣進(jìn)行變換,公式如圖2所示。
圖2 仿射變換原理
本研究采用交互的方式獲得原始圖像左上、左下、右上3個(gè)位置像素坐標(biāo)。即鼠標(biāo)單擊位置的像素坐標(biāo),同時(shí)鎖定輸出目標(biāo)圖像的尺寸,定義輸出圖像的位置坐標(biāo)。3個(gè)點(diǎn)可以確定平面,計(jì)算變換矩陣。通過原始圖像左上、左下、右上3個(gè)像素點(diǎn)的位置坐標(biāo)和預(yù)制糾偏后3個(gè)像素點(diǎn)的位置坐標(biāo)比對,構(gòu)造2×3維的變換矩陣。采用變換矩陣對原始樹葉圖像進(jìn)行矯正。
1.2.3 圖像去噪
在預(yù)處理過程中,本研究為了防止樹葉因干燥、易碎等原因,造成樹葉不能重復(fù)利用的現(xiàn)象。將采集的樹葉固定在方格紙上。通過方格統(tǒng)計(jì)出樹葉實(shí)際面積,之后采集圖像。采集圖像因有方格線,在提取輪廓時(shí)較難,去除圖像方格線是預(yù)處理的關(guān)鍵部分。不同類型的圖像有不同的去噪方法:連續(xù)的圖像采用高斯濾波,網(wǎng)格采用形態(tài)學(xué)開運(yùn)算,非連續(xù)的圖像采用中值濾波[4]。
高斯濾波:圖像處理首先消除圖像中因蟲眼等因素造成異常像素點(diǎn)。獲得圖像低頻信號,即灰度變化較為緩慢的地方。本研究采用高斯濾波去除樹葉上蟲眼,使孔洞不是特別明顯。所謂高斯濾波就是原有圖像經(jīng)過高斯函數(shù)平滑。經(jīng)過高斯平滑后的圖像,圖像邊緣更加明顯。高斯平滑曲線如圖3所示:f(x,y)為原有圖像每個(gè)像素點(diǎn)灰度值。
圖3 高斯濾波結(jié)果
1.2.4 形態(tài)學(xué)運(yùn)算
形態(tài)學(xué)變換是用一定形態(tài)學(xué)元素創(chuàng)建的卷積核對原圖像進(jìn)行處理,以獲取清晰圖像,從而實(shí)現(xiàn)圖像分析和圖像描述。基本的形態(tài)學(xué)變換包括腐蝕、膨脹、開、閉運(yùn)算等。
腐蝕是對圖像中高亮部分進(jìn)行縮減。通過腐蝕操作,去除圖像周圍邊緣,把兩個(gè)圖像有連接的部分?jǐn)嚅_[5]。腐蝕計(jì)算公式:AΘB=∩(A)-b。公式含義為集合A用結(jié)構(gòu)元素b腐蝕,對應(yīng)的結(jié)果取交集c。如圖4所示,腐蝕過程包括目標(biāo)圖像(a)和結(jié)構(gòu)元素(b)。首先對結(jié)構(gòu)元素(b)確定中心點(diǎn),黑色為中心點(diǎn)。將目標(biāo)圖像和結(jié)構(gòu)元素用二維數(shù)字表示。黑色即為1,白色即為0。原圖像按結(jié)構(gòu)元素b進(jìn)行掃描,當(dāng)a,b進(jìn)行操作,每個(gè)位置都為1,中心點(diǎn)對應(yīng)位置為1,否則為0。即目標(biāo)區(qū)域與原圖像完全覆蓋結(jié)果為1,否則結(jié)果為0。
膨脹是腐蝕操作的對偶操作,是對目標(biāo)圖像明亮部分的膨脹操作,使圖像邊界向外擴(kuò)充,填補(bǔ)圖像的細(xì)小漏洞。主要作用是將2個(gè)斷裂的區(qū)域進(jìn)行連接。膨脹公式為:A⊕B=∪(A)b。含義是集合a用結(jié)構(gòu)元素b膨脹,結(jié)果取并集為d。膨脹操作先確定結(jié)構(gòu)元素中心點(diǎn)(b)黑色區(qū)域,在目標(biāo)圖像上進(jìn)行掃描,目標(biāo)圖像與結(jié)構(gòu)元素對應(yīng)位置與運(yùn)算后的結(jié)果再進(jìn)行或操作,即b覆蓋a時(shí),有一個(gè)結(jié)果為1,則對應(yīng)位置為1。
如圖4所示,a,b為結(jié)構(gòu)元素,c為腐蝕結(jié)果,d為膨脹結(jié)果。圖像經(jīng)形態(tài)學(xué)處理后,網(wǎng)格線消失,但還有一些散點(diǎn)。為了使圖像更加平滑,采用中值濾波去噪[6]。中值濾波是處理椒鹽噪音的有效手段,中值濾波算法如下:(1)首先確定窗口位置及大??;(2)窗口內(nèi)像素按灰度排序;(3)中間值代替原窗口中像素值。
圖4 形態(tài)學(xué)變換
如圖5所示,中值濾波是原有如圖像中BGR的值,按照從小到大進(jìn)行排序,將圖像中間位置替換為排序后中間的值。圖4排序?yàn)?,3,3,4,4,5,5,5,10,中間位置元素為4,因此將原圖10替換為4。
圖5 中值濾波前后結(jié)果對比
樹葉圖像經(jīng)過形態(tài)學(xué)變換后,仍有少量椒鹽噪聲,經(jīng)過中值濾波處理后,結(jié)果如圖6所示。
圖6 椒鹽噪聲處理過樹葉
圖像轉(zhuǎn)為單通道后,灰度是圖像的一個(gè)描述方式,采用灰度直方圖,以圖形化的方式顯示出圖像的灰度分布。樹葉圖像的灰度如圖7所示。
圖7 樹葉灰度圖像
清晰的目標(biāo)圖像是準(zhǔn)確提取圖像特征、計(jì)算面積等幾何特征的重要前提。本研究采用圖像分割技術(shù)把圖像分成前景和背景兩類。如何確定最佳灰度閾值,使分割后的圖像前景和背景的差異盡可能明顯。這是根據(jù)灰度作為度量指標(biāo)的一個(gè)二分類問題。在圖像處理中,大津閾值分割適用于灰度變化明顯的圖像,區(qū)域生長算法適用于漸變類型圖像。本研究采用大津閾值算法進(jìn)行分割。
大津閾值分割算法與聚類算法相似,算法核心是選取類內(nèi)方差最小、類間方差最大的閾值。窮舉灰度的(0,255)之間的每個(gè)值,然后進(jìn)行遍歷。每取一個(gè)灰度值,就會(huì)有一個(gè)類內(nèi)方差和類間方差。選取類內(nèi)方差最小和類間方差最大的閾值,作為分割的閾值[7]。
假設(shè)圖像的背景較暗,并且圖像的大小為M×N,圖像中像素的灰度值小于閾值T的像素個(gè)數(shù)記作N0,像素灰度大于閾值T的像素個(gè)數(shù)記作N1,大津算法數(shù)學(xué)表示如下:
(1)假設(shè)閾值T將像素點(diǎn)劃分為兩類C0,C1,則每類出現(xiàn)的概率:
說明:對于圖像I(x,y),前景(即目標(biāo))和背景的分割閾值記作T,屬于前景的像素點(diǎn)數(shù)占整幅圖像的比例記為ω0,其平均灰度μ0;背景像素點(diǎn)數(shù)占整幅圖像的比例為ω1,其平均灰度為μ1。圖像的總平均灰度記為μ,類間方差記為g。
(2)兩類類內(nèi)方差和類間方差:
將式(5)代入式(6),得到等價(jià)公式:
類間方差g最大的閾值T,即為所求。很顯然u=w0u0+w1u1。最佳閾值T是w的隱函數(shù),是遍歷所有T,取得類間方差最大的T。
OpenCV常用的檢索模式有外輪廓、無等級輪廓、內(nèi)外等級輪廓、樹結(jié)構(gòu)的輪廓[8]。外輪廓是只返回最外部的輪廓,所有子輪廓均被拋棄。無等級輪廓檢索是不包含任何等級關(guān)系所有的輪廓,父母輪廓和子輪廓都是平等的。內(nèi)外等級輪廓檢索的所有輪廓都被安排到2個(gè)層次中,內(nèi)層次和外層次。樹結(jié)構(gòu)輪廓完美地顯示了家族層次結(jié)構(gòu)圖[9],用層次或者父子關(guān)系表示輪廓之間關(guān)系,避免輪廓出現(xiàn)嵌套情況。本研究采用無等級輪廓檢索方式提取所有樹葉輪廓。
無等級輪廓檢索是提取連通區(qū)域最外層邊界像素中心點(diǎn)連接起來的輪廓,并不是實(shí)際輪廓。區(qū)域像素面積=輪廓面積+輪廓周長/2+1。如圖8所示,輪廓面積為3×3=9,區(qū)域像素點(diǎn)個(gè)數(shù)=9+12/2+1=16。如圖9所示,圖像已經(jīng)標(biāo)出每個(gè)區(qū)域序號和輪廓面積。
圖8 輪廓面積
圖9 樹葉圖像
樹葉面積分世界坐標(biāo)系和圖像坐標(biāo)系。樹葉面積計(jì)算,需要將圖像坐標(biāo)系轉(zhuǎn)為世界坐標(biāo)系。世界坐標(biāo)系是物體在真實(shí)世界中的坐標(biāo),即方格紙每個(gè)方格為1 mm2。只要物體大小固定,樹葉面積可以確定。圖像坐標(biāo)系是以圖像的頂點(diǎn)為坐標(biāo)原點(diǎn),分別建立x、y軸,單位是以像素計(jì)。
世界坐標(biāo)系下樹葉面積與像素坐標(biāo)系下二維樹葉輪廓大小存在正相關(guān)。圖像坐標(biāo)系計(jì)算公式為,樹葉面積=單位像素大小×樹葉像素。單位像素大小=總方格面積/圖像外輪廓像素?cái)?shù)。樹葉面積計(jì)算轉(zhuǎn)化為已知方格紙面積、樹葉輪廓像素?cái)?shù)、方格紙輪廓像素個(gè)數(shù),求樹葉的真實(shí)面積的問題。
如表1所示,通過實(shí)驗(yàn)可以看出,方格法統(tǒng)計(jì)出5月份黑龍江地區(qū)杏樹每片樹葉圖像面積均值為1 864 mm2。圖像處理方法測得樹葉像素均值為19 867 px,計(jì)算得樹葉面積均值1 902 mm2,誤差在0.06%~2.97%。這說明采用數(shù)字圖像方法測量樹葉面積測量具有較高的可行性。
表1 實(shí)驗(yàn)數(shù)據(jù)獲取與分析
本文提出了一種基于數(shù)字圖像的樹葉面積測量方法,主要過程包括數(shù)據(jù)采集、幾何糾正、形態(tài)學(xué)變換、去噪、閾值分割、輪廓提取、特征計(jì)算以及結(jié)果評估。本研究以黑龍江雞西5月杏樹樹葉為樣本,圖像采用形態(tài)學(xué)開運(yùn)算和中值濾波去除方格噪聲,用閾值算法區(qū)分目標(biāo)與背景。目標(biāo)圖像采用無等級輪廓提取方法計(jì)算輪廓的像素面積,然后通過坐標(biāo)變換,計(jì)算樹葉真實(shí)面積。這種方法是一種輕量級的方法,計(jì)算過程簡單,成本較低,便于推廣使用。樹葉面積的測量為農(nóng)作物的合理密植,適當(dāng)修剪樹葉等方式提高產(chǎn)量提供了依據(jù)和支撐。