王雪晴 郭亞航
摘 要:以校園常見的喬木葉片為研究對象,利用視覺技術(shù)并借助MATLAB豐富的圖像處理功能對葉片圖像進行了一系列的圖像處理,計算出喬木葉片的面積。與Photoshop圖像處理后的面積測量進行了比較分析,對比結(jié)果表明2種方法得出的葉片面積結(jié)果很接近,計算相對誤差的平均值為0.564%,表明該葉片面積測量方法具有較強的可行性。與傳統(tǒng)工具測量相比,這種方法在不破壞植物葉片的前提下具有準確、快速、精度高等優(yōu)點。
關(guān)鍵詞:視覺技術(shù);MATLAB;喬木葉片;面積測量;圖像處理
中圖分類號:S-3 ? ? ? 文獻標識碼:A
DOI:10.19754/j.nyyjs.20201030003
植物葉片面積的大小決定了其光合作用的強度,也直接影響了植物生產(chǎn)力的高低,因此準確快速測量葉片面積的方法對于農(nóng)業(yè)生產(chǎn)實踐具有很重要的意義。測定葉面積的方法有傳統(tǒng)的手工測量方法,如方格法、稱重法、系數(shù)法、回歸方程法等,雖然方法簡單,但測量耗時且精度低[1]。隨著視覺技術(shù)的迅速發(fā)展,以及各種各樣的數(shù)學和圖像處理軟件逐漸走進人們的生活。用于算法開發(fā)、數(shù)據(jù)分析和圖像處理的MATLAB在參數(shù)測量方面具有了很大的優(yōu)勢和突破。因此,在這種前提下本文基于視覺技術(shù)并借助MATLAB圖像處理方法對植物葉片面積進行了測量研究。
1 測量原理
本文基于視覺技術(shù)并借助MATLAB圖像處理來對植物葉面積進行測量。首先將待測的植物葉片摘下,放在參照物上,用玻璃片壓平。再通過OPPO R9手機[2]自帶的后置攝像頭將葉片拍攝成數(shù)碼的相片,也就是把喬木葉片轉(zhuǎn)換成計算機可以識別和處理的圖形模式。數(shù)字圖像都由一個個像素點所組成,只需知道每一個像素點的真實面積后,就可以來通過像素數(shù)求出喬木葉片的葉面積,計算公式如(1)[3]。
S=m1×S0m0
(1)
式(1)中S代表所求的葉片面積,S0表示參照物的實際面積,m1代表葉片的像素個數(shù),m0表示參照物的像素個數(shù)。因此只需要知道S0的面積,然后通過MATLAB的圖像的處理得到葉片的像素個數(shù)m1和參照物的像素個數(shù)m0,就可以求得葉片的面積。
2 植物葉片的選擇
利用視覺技術(shù)對植物葉片進行測量,首先必須選擇合適的植物葉片,生活中常見的葉片有多種,如芹菜葉片,蘋果樹葉片等多種。但是選擇的葉片必須遵循以下幾個原則:選擇的植物葉片最好為常見的植物葉片,因為常見的葉片具有代表性,不常見的植物葉片我們了解的很少,并不能十分準確把握它們的生活特征;選擇的植物葉片必須較為規(guī)則,芹菜的葉片較復雜,在邊緣檢測時會產(chǎn)生卡機和誤差很大等問題,故排除。結(jié)合以上兩個原則,最終選擇了校園圖書館對面的喬木葉片,喬木大多生活在熱帶和亞熱帶地區(qū),適應能力好,萌發(fā)力強,并且四季不變色,也無須打農(nóng)藥治理。
3 葉片面積測量總體流程
喬木葉面積測量過程結(jié)構(gòu)圖如圖1 所示。首先利用相機獲取喬木葉片,然后對圖像進行去除陰影、調(diào)正大小的預處理,預處理后的圖像進一步進行處理:圖像的灰度變換,因灰度圖像可以便于我們觀察和減少干擾因素;灰度圖像的分割;調(diào)整對比度并利用邊緣檢測得到精準的葉子輪廓;形態(tài)學的處理;中值濾波。然后對處理后的圖像進行標記得到的喬木葉的像素個數(shù),最后來計算喬木葉片的面積大小。其中喬木葉圖像的處理過程是圖像處理法測定喬木葉面積的關(guān)鍵所在,因此,在獲取喬木葉的圖像后,應用MATLAB軟件對圖像進行了分析和處理。
4 喬木葉片面積測量的實現(xiàn)
4.1 圖像獲取
利用視覺技術(shù)測量喬木葉面積的硬件部分主要由成像的設備、面積固定的參照物和計算機組成。成像的設備選用的是OPPO R9手機自帶的相機后攝像頭(像素1920W)來獲取喬木葉圖像,然后把圖像傳入計算機中,使MATLAB讀取傳入計算機的喬木葉片圖像。利用MATLAB計算葉面積最大的優(yōu)點是不會破壞葉片的結(jié)構(gòu)。本次測量要求計算機安裝MATLAB軟件,且可以快速地運行軟件。其中最為關(guān)鍵的一個設備就是參照物,此研究中運用了1個邊長為2cm的白色正方形紙板作為參照,參照物必須與底板有很大的顏色差距(本次選用和手機拍攝大小一樣的灰褐色圖像作為背景圖像)。因參照物面積的精準度選擇會直接影響測量精度,所以參照物的面積一定要精準。
操作過程中,手機拍攝圖片的物距也要有嚴格的距離要求,保證像素代表的面積為一個定值,還要求垂直拍攝,且鏡頭的焦距也是個定值,定值的不變才可減少實驗中的誤差。獲取的圖片共2張,其中有1張是固定在背景的紙板上拍攝的圖片,一張是顏色和紙板差距較大的圖片,就是背景圖像。
4.2 圖像預處理
4.2.1 除去實驗中的不利因素
因為圖像拍攝是由相機所完成的,所以也導致了許多影響葉面積計算的因素。比如喬木葉子在拍攝時候就出現(xiàn)了較大面積的陰影,如果不把這些不利因素去除,計算的喬木葉面積偏差就會很大,這就導致了計算精度產(chǎn)生了巨大的誤差。
因此此文運用了Photoshop2.0對喬木葉片進行了去除陰影處理,處理后的效果如圖2所示,處理前的面積S=687mm2,處理后的面積S=610 mm2。
4.2.2 調(diào)整圖像大小
因為運用相機拍攝的圖片很大(1920×1440),MATLAB直接進行識別和讀取的進度就會很慢,極大地增加了測量的工作量,更有甚者,讀取過程中MATLAB葉很可能直接卡死,對操作者造成了很大的麻煩,甚至影響了實驗的測量結(jié)果。還會可能讓圖片和數(shù)據(jù)丟失,造成實驗必須從頭開始。所以,要對圖片的大小進行調(diào)整。
4.3 圖像處理
4.3.1 圖像灰度變換
由于用手機相機拍攝的圖片為JPG格式,這樣可能導致實驗測量過程干擾因素的增加,增大了實驗的誤差和不穩(wěn)定性。所以需把彩色圖像調(diào)整為灰度圖像,因灰度的圖像可以讓圖像中葉子的輪廓特征更加明顯,測量的干擾因素盡可能減少。圖3為灰度變換后的喬木圖像。
4.3.2 圖像分割
調(diào)整后的灰度圖像雖然在顏色和大小上面已經(jīng)相對減少了誤差和干擾因素。但是計算機還不能自動地對調(diào)整后的圖像進行識別和處理,為了達到這一點,必須對調(diào)整后的灰度圖像再次進行分割。所謂的分割,就是按照需要并且規(guī)定的原則,將圖像分割為多個互不相交的小區(qū)域[4],計算機可以自動識別和處理這些小區(qū)域,這樣也就減少了工作量,并且排除一部分的人為誤差。圖像的分割也可以將其理解為對圖像中所需要的特性區(qū)域提取出來。此文對葉片的面積進行測量,就提取出像素灰度值這一區(qū)域。
在MATLAB中,為了可以試驗圖像的差分,此文選用了imsubtract函數(shù)[5]來實現(xiàn)這一過程,第1步先輸入待測的圖片,然后輸入背景圖片,之后用imsubtract函數(shù)運算兩個圖像中的像素的差值,最后再把相應的差值作為輸出圖像相應的像素值。從而進行下一步的測量和運算。圖4為差分處理后的喬木圖像。程序如下。
Image=Imread(C:\\Users\\hp-pc\\Desktop\\葉片.jpg),%讀入原始的圖像;
Image1=imread(C:\\Users\\hp-pc\\Desktop\\背景圖片.jpg),%讀入背景圖像;
Grayscale=rgb2gray(image),%進行灰度轉(zhuǎn)換;
Grayscale1=rgb2gray(image1);
Subtract=imsubtract(grayscale1,grayscale),%得出差分圖像;
Figure,imshow(subract),%顯示差分圖像。
4.3.3增強圖像的對比度
相機拍攝的過程中,必然受到光照強弱的影響,光照的強弱會讓灰度的圖像范圍分布不均勻,從而造成了灰度圖像的不規(guī)則化?;叶鹊牟灰?guī)則和不均勻會讓計算上面產(chǎn)生誤差,為了減少不均勻引起的誤差,本文務必對圖像進行灰度的調(diào)整。選用增強圖像的對比度來減少這方面的干擾。圖像增強的意義是為了便于理解和分析圖像,但是需要根據(jù)圖像存在的實際問題來進行改善和增強。而不是盲目地調(diào)節(jié)對比度,通常情況下,圖像增強是為了突出圖像中需研究的信息,且減少干擾因素,從而達到了提高圖像質(zhì)量的目的。
MATLAB中的Imadjust函數(shù),它可以使圖像的對比度得到增強,讓圖像中的細節(jié)更清晰,達到增強圖像的目的[5]。從圖5可以看出,處理后的圖像明顯清晰很多。
4.3.4 圖像邊緣檢測
邊緣是所提取目標和背景的分界線,提取出邊緣才能將目標和背景區(qū)分開[6]。喬木的葉片邊緣并不規(guī)則,并且還存在不連續(xù)區(qū)域,而邊緣也是計算葉面積不穩(wěn)定的一個因素,所以需要對圖像的邊緣來進行檢測。邊緣檢測的目的就是為了讓操作者可以更加直觀地了解到喬木的圖像。從實驗來看,圖像的邊緣反映了圖像的很多信息,如灰度值得突變區(qū)域、顏色的突變區(qū)域等信息。它是圖像識別過程中1個重要特性。
MATLAB常用到4種邊緣檢測的方法,Roberts、Sobel、Prewit、Canny。為了更清楚直觀的觀察到喬木的邊緣情況,本文采用以上4種方法進行邊緣提取,并進行了對比研究。
圖6為采用4種邊緣檢測后的喬木葉片圖像,對比發(fā)現(xiàn)4種邊緣檢測方法中canny的邊緣提取較為復雜凌亂和干擾因素過多,并不適合用來進行下一步的處理和檢測。相比而言Robert圖像邊緣提取圖像中干擾因素較少,圖像葉直觀清楚,因此本文選擇了Roberts來進行下一步的處理和分析。
4.3.5 圖像形態(tài)學處理
觀察Roberts邊緣檢測圖像,發(fā)現(xiàn)雖然檢測圖像有了大概的輪廓,但是邊緣處仍然存在斷裂的不完整現(xiàn)象,并沒有十分完整和精準地把葉子的輪廓表示出來。所以這里采用了MATLAB中strel和imdilate函數(shù)來進行了填補縫隙的操作。
填補分析后,需要來對圖像進行填充,本文利用了MATLAB中imfill對葉片內(nèi)部的孔隙進行了填充。但此時喬木圖像邊緣仍不光滑,為了得到較為光滑的圖像,需要對圖像進行平滑的處理。對于上面的分割結(jié)果,喬木圖像邊緣并不光滑,為了得到較為光滑的圖像,需要對圖像進行平滑的處理。圖7為填補邊緣和內(nèi)部縫隙以及進行平滑處理后的喬木葉片圖像。
4.3.6 圖像中值濾波
喬木葉圖像的采集、傳輸?shù)冗^程中出現(xiàn)不可避免的干擾因素,會影響結(jié)果的準確度,因此對喬木圖像進行濾波處理。非線性中值濾波在去除或減少干擾因素的同時不會讓圖像的邊緣模糊[7],這也是中值濾波在實驗中得到大范圍應用的重要原因。圖8為進行中值濾波處理后的喬木葉片圖像。
4.4 圖像標記
標記是用于確定和標記圖像中的目標對象,本文主要標記喬木圖片中的像素值,而參照物的像素值可以用MATLAB直接輸出。所以調(diào)用bwlabe函數(shù)來尋找連通的區(qū)域,并且用唯一確定的數(shù)字來將其分類和標記。
4.5 面積計算
從圖9中可以看出葉子像素個數(shù)m1=19969。已知參照物固定面積(S0為4 cm2)根據(jù)MATLAB計算得出參照物的像素的個數(shù)m0=11623。根據(jù)測量原理和面積計算公式(1)可得S1=6.872cm2。
5 結(jié)果分析
為了檢測和驗證此方法對喬木葉片計算的正確性,本文又采取了Photoshop2.0軟件進行圖像處理對同一個喬木葉片進行了測量,共研究了5對喬木葉片,測量結(jié)果見表1。
從表1可以看出,用MATLAB處理得到的喬木葉片面積與用Photoshop處理得到的葉片面積結(jié)果很接近,計算相對誤差的平均值為0.564%。因此,可以利用本文中MATLAB計算葉片面積的方法來測定實際生活中植物葉片的面積。
6 結(jié) 論
采用視覺技術(shù)和MATLAB圖像處理分析法進行了植物葉片(以喬木葉片為例)面積測量研究,詳細地介紹了MATLAB實現(xiàn)了面積測量的全過程。通過檢測、計算和對比研究,可以得出用MATLAB測量植物葉片葉面積的穩(wěn)定性和準確性相對較高,可以應用到實際生活中測量植物葉片面積。與傳統(tǒng)工具測量相比,具有準確快速的優(yōu)點,并且這種方法實現(xiàn)了不破壞植物葉片的測量,還能確保測量精度。若能進一步提高研究設備的精度,如獲取圖像時采用專業(yè)相機以及可靠性光源等,則可進一步提高測量的準確度。
參考文獻
[1] 陳愛軍,李東升,董光輝.一種基于MATLAB的植物葉片參數(shù)測量系統(tǒng)[J].中國計量學院學報,2010(4):310-313.
[2]黃文娟.OPPO R9Plus試用體驗[J].數(shù)碼攝影,2016(07):170-173.
[3]馬麗,陶佳,杜秋菊.基于圖像處理的植物葉面面積計算算法研究[J]. 安徽農(nóng)業(yè)科學, 2011(25):15812-15814.
[4] 王敬軒. 基于圖像識別技術(shù)的豆科牧草分類研究[D].甘肅農(nóng)業(yè)大學,2010.
[5] 洪艷. 基于葉片輪廓與角點的植物葉片識別研究[D].合肥工業(yè)大學,2015.
[6]趙小川.MATLAB圖像處理——能力提高與應用案例[M].北京:北京航空航天大學出版社,2014:18-38.
[7]張德豐.數(shù)字圖像處理(MATLAB版)[M].北京:人民郵電出版社,2009:241.
(責任編輯 周康)