999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

玉米病害圖像分割系統開發

2014-10-22 23:40:33吳昂李艷玲何玉靜王永田朱娟花
湖北農業科學 2014年17期

吳昂+李艷玲+何玉靜+王永田+朱娟花

摘要:為了提高玉米病害葉片圖像分割的準確性和設計相應的圖像分割系統,采用迭代閾值分割算法和形態學中的開閉運算相結合的方法對玉米病害圖像進行分割,使用VB和MATLAB的混合編程設計開發玉米病害圖像分割系統。運行結果表明,該分割方法對玉米病害圖像有很好的分割效果。

關鍵詞:玉米病害;圖像分割;閾值;圖像識別

中圖分類號:TP391.41;S435.13 文獻標識碼:A 文章編號:0439-8114(2014)17-4178-04

Developing Image Segmentation System of Maize Leaf Disease

WU Anga, LI Yan-lingb,HE Yu-jinga,WANG Yong-tiana,ZHU Juan-huaa

(a.Mechanical and Electrical Engineering College;

b.School of Information and Management Science,Henan Agricultural University,Zhengzhou 450002, China)

Abstract: In order to improve the accuracy of image segmentation of maize leaf disease and the method of iterative threshold segmentation and morphological opening and closing was proposed to develop the image segmentation system. The image segmentation system of maize disease was designed with mixed program of VB and MATLAB. The results showed that the segmentation method of maize disease image developed was good.

Key Words: maize leaf disease;image segmentation;threshold;image recognition

玉米病害是影響玉米產量的一個重要因素,區分玉米病害能幫助人們準確地識別玉米病害的種類,從而對癥下藥,保證玉米產量。為此,迫切需要開發一套玉米病害自動識別系統,對玉米病害的病種快速做出準確的判別,并給出科學的治療措施,使農業生產者能夠最大限度地減少病害造成的損失,并在一定程度上減少對消費者和環境的損害。玉米病害圖像分割系統是玉米病害自動識別系統中的關鍵問題[1-7],為此,先提出一種迭代閾值分割算法和形態學上的閉開運算相結合的方法對玉米病害圖像進行分割,取得了較好的分割效果,然后使用VB和MATLAB的混合編程進行玉米病害圖像分割系統的設計與實現。

由于VB提供的計算機和繪圖函數有限,MATLAB創建圖像用戶界面的能力相對較弱,因此用VB編寫界面,用MATLAB作為后臺運行程序,使兩者相得益彰[4,5,8]。通過這種方法,可使VB的可視化界面和MATLAB強大的計算及繪圖功能得以實現,從而提高編程的效率,縮短軟件開發的周期。VB與MATLAB的接口,有一般動態鏈接庫、DDE、OLE、ActiveX和COM組件等多種方法,由于COM組件在訪問時,不用進行環境切換,可以完全脫離MATLAB環境,節省了運算時間和內存要求,因此使用COM組件技術作為VB和MATLAB的接口。

1 玉米病害圖像分割算法

圖像分割可分為基于閾值分割和基于區域的分割。基于閾值分割可分為全局閾值分割、局部閾值分割和動態閾值/自適應閾值分割。全局閾值分割選取的閾值僅與各個像素的灰度有關。有極小點閾值法、迭代閾值法、最優閾值法、Otsu閾值法、最大熵法、p參數法等。局部閾值選取的閾值與像素本身及其局部性質(如鄰域的平均灰度)有關。動態閾值/自適應閾值選取的閾值不僅與局部性質有關,還與像素的位置有關[9,10]。

玉米病害圖像由于病害種類多,而且病害種類不同,病害的大小、多少、深淺、發病部位差別很大,即使同一種病害,發病時間、發病程度不同,病害圖像也有所不同。所以采用同一種分割方法分割所有的玉米病害圖像效果不是很理想,需要再處理分割的二值圖像,去除誤分割。經過比較,采用迭代閾值法分割玉米病害圖像,然后采用形態學的方法優化分割效果。

1.1 迭代閾值分割算法

迭代閾值算法如下:

1)求出圖像的最大灰度值和最小灰度值,分別記為Max和Min,令初始閾值為T1=(Max+Min)/2;

2)根據閾值T1將圖像分割為G1和G2兩部分。分別求出G1和G2的平均灰度μ1和μ2:

μ1=■ini/■ni μ2=■ini /■ni,其中ni是灰度為i的像素個數;

3)計算新的閾值T1=(μ1+μ2)/2;

4)如果|T2-T1|≤T0(T0為事先給定的極小正數,此次取0.01),說明迭代前后兩次的閾值相差不大,則迭代終止;否則令T1=T2,重復步驟(2)和(3)。最后的T2就是所求的閾值。

1.2 開運算和閉運算

開運算是指使用同一個結構元素對圖像進行先腐蝕后膨脹的過程,它通常在需要消除小顆粒噪聲和斷開目標物之間粘連時使用。開運算的主要作用和腐蝕操作相比,具有消除噪聲、在纖細點處分離物體和平滑較大物體的邊界的同時并不會明顯改變其面積的優點。

閉運算是指使用同一個結構元素對圖像進行先膨脹后腐蝕的過程。主要用來填充物體內的細小空洞、連接鄰近物體、平滑其邊界的同時并不明顯改變其面積。endprint

對分割得到的玉米病害二值圖像采用線形結構元素進行閉合操作,填充空洞并連接斷開的邊界,再采用線性結構元素進行開運算去除噪聲;然后采用方形結構元素進行閉和開操作,優化分割圖像,產生較好的效果。

2 Matlab的COM Builder接口

Matlab COM Builder是Matlab提供的一個COM生成器,是一項比較復雜的技術。COM生成器為實現MATLAB獨立應用程序提供了一個新的途徑。它提供了簡單、易用的圖形化界面,把MATLAB的M函數文件自動、快速地轉變為獨立的進程內COM組件,這些組件作為獨立使用的COM對象,以DLL(ActiveX DLL)形式被裝入到客戶的進程空間中,可以在任何支持COM的語言中直接引用這些組件對象。其工作原理是使用Matlab編譯器把Matlab程序轉換成C/C++程序,同時產生和COM有關的包裝代碼,之后調用外部編譯器來產生COM對象[1]。

由于Matlab COM Builder是Matlab Compiler的擴展,因此在創建COM組件之前,應該先安裝Matlab Compiler和Matlab COM Builder等模塊,同時需要對Matlab Compiler進行必要的配置。配置方法為:首先打開Matlab,在Matlab的命令窗口中輸入“mbuild –setup”,然后會出現選擇編譯器的對話框,對話框中列出所有計算機中已安裝的各種C/C++編譯器,用戶根據需要自行選擇一種并確認。之后就可以利用Maltab COM Builder來生成需要的組件了。

使用Matlab COM Builder編譯COM組件一般包括以下4個步驟:

1)打開一個已經存在的工程,或者創建一個新的工程;

2)把需要的M程序加入工程;

3)對工程進行編譯;

4)對產生的COM組件進行打包和發布。

3 玉米病害圖像分割軟件設計

首先利用Matlab COM Builder工具將所編寫的圖像分割算法的M函數文件轉換為COM組件,生成的COM組件是以DLL的形式存在的,然后在VB語言中直接調用該組件。具體步驟包括編寫M文件、生成COM組件、調用.DLL文件、設計窗體和編寫代碼。

3.1 M文件的編寫

在MATLAB中編寫玉米病害圖像分割的M文件,主要包括迭代閾值分割算法的M文件和形態學上開運算和閉運算的M文件。篇幅有限僅給出迭代閾值分割算法的M文件程序如下:

Function result=iteration(filename)

Global result;

f=imread(filename);

f=rgb2gray(f);

f= double(medfilt2(f));

T=(min(f(:))+max(f(:)))/2;

done=false;

i=0;

while ~done

R1=find(f<=T);

R2=find(f>T);

Tnew=(mean(f(R1))+mean(f(R2)))/2

%為求2個灰度均值的平均值

done=abs(Tnew-T)<0.01

% abs為求絕對值

T=Tnew;

i=i+1;

end

f(R1)=0;

f(R2)=1;

result=f;

figure(1);

set(gcf,'Visible','off');

imshow(f);

title('迭代閾值二值化圖像');

3.2 生成COM組件

運行Matlab,在命令行輸入COMTOOL命令,打開COM生成器窗口。在“File”菜單下選擇“New Project Settings”對話框,在“Component name”文本框中輸入組件名稱,組件以DLL文件存放。輸入組件名之后,COM生成器自動在“class name”中輸入與組件名相同的類名,用戶也可以輸入其他的組件名。對話框中的“Project version”文本框用來設置組件的版本號,默認值為1.0版本。對話框中的“Project directory”文本框用以在生成組件、編譯和打包時,工程和相關文件的存放位置,默認位置在Matlab的work文件夾下。對話框中的“Compile code in”文本框用以設置最后編譯時,生成C或C++代碼。如果在M文件中包含Matlab句柄圖形調用,則在“Compile options”中選擇“Use Handle Graphics library”,使工程組件包含Matlab C/C++圖像庫。以上各項完成后,單擊“OK”,用戶建立的工程文件將以.cbl的文件名被自動添加在Matlab COM Builder的工程目錄中。

創建工程之后,生成器主窗口的“Project”、“Build”、“Component”等3個菜單就變為可用。點擊“Add File”按鈕向工程中添加M文件,由于每次只能添加一個,所以多次操作將所用的M文件添加進去。添加完M文件后,點擊“Build”下的“COM Object”選項來調用Matlab編譯器進行編譯,生成對象文件及輸出文件.DLL,并將.DLL自動注冊到系統中。當出現“Standalone DLL build complete”時,表明已經注冊成功。用戶在VB主界面上,由“工程”菜單項打開“引用”窗體,將發現已經有新生成的組件,用戶選中該組件,單擊“OK”按鈕,將在Matlab中產生的組件.DLL引入VB。

3.3 VB中界面設計及代碼編寫

窗體菜單設計采用下拉式,共包括文件、圖像預處理、圖像分割和幫助4個主菜單,文件中包括打開、保存和退出子菜單,圖像預處理包括灰度化和中值濾波子菜單;圖像分割中包括迭代閾值分割和形態學處理子菜單;幫助菜單中是簡單操作的說明。窗體中包括4個image對象,分別用來顯示原圖像、中值濾波圖像、迭代閾值分割圖像和形態學操作圖像。一個通用對話框CommonDialog1用于文件的打開及保存。相關代碼如下:

Public Filename As String

Private imag As process.processclass '定義類實例

'窗體裝載時,創建新的類變量

Private Sub Form_Load()

Set imag = New process.processclass

End Sub

‘打開圖像顯示在Image1圖像框中

Private Sub openfile_Click()

CommonDialog1.Filter = “(*.*)|*.*”

CommonDialog1.ShowOpen

Filename = CommonDialog1.Filename

Image1.Picture = LoadPicture(Filename)

End Sub

‘調用迭代閾值分割算法并顯示分割圖像在Image3中

Private Sub iteration_Click()

Call imag.iteration(1, result, Filename)

Image3.Picture = Clipboard.GetData()

End Sub

3.4 運行結果及分析

圖1為以灰斑病圖像為例的處理結果,包括原圖像、中值濾波后的圖像、迭代閾值分割后的圖像和形態學處理圖像。從圖1中第3幅圖像可以看出迭代閾值法分割出了二值圖像,葉片病變部位和健康部位基本分開,但圖像中有小的噪聲,病變部位內部有小的空洞,還有一些誤分割(邊緣不連續)。圖1中第4幅圖像是采用形態學運算中的開運算和閉運算去噪、填充空洞和邊緣連接后得到的圖像,可以看出圖像的噪聲、空洞和斷開的邊緣基本去除。

4 小結

采用迭代閾值分割法對玉米病斑圖像進行分割得到二值圖像,然后使用形態學上的閉運算和開運算去除噪聲、填充空洞和邊緣連接;利用VB的可視化界面和Matlab強大的計算及繪圖功能設計玉米病斑圖像分割軟件,大大提高了圖像處理的操作性,且可脫離Matlab環境運行。運行結果表明,采用的迭代閾值分割算法和形態學上的閉開運算相結合的方法對玉米病害圖像有很好的分割效果。該系統的開發對玉米病害圖像自動識別系統的開發具有重要意義。

參考文獻:

[1] 陳月華,胡曉光,張長利.基于機器視覺的小表害蟲分割算法研究[J].農業工程學報,2007,23(12):187-19.

[2] 馬 旭,齊 龍,張小超,等.基于模糊聚類的玉米大斑病害圖像的分割技術[J].農機化研究,2008(12):24-26.

[3] 馬曉丹,關海鷗,黃 燕.基于圖像處理的玉米葉部染病程度的研究[J].農機化研究,2009,31(11):102-104.

[4] 劉新銘,項 伍,孟維娟.用VB實現MATLAB的圖像處理功能[J].上海電機技術高等專科學校學報,2004,7(4):250-253.

[5] 胡江萍,譚躍剛.用VB與Matlab開發動態圖像處理軟件的方法[J].武漢理工大學學報(信息與管理工程版),2003,25(1):32-34.

[6] 馬 駿,王建華.一種基于數學形態學的植物病蟲識別方法[J].深圳大學學報理工版,2004,21(1):72-75.

[7] 毛罕平,張艷誠,胡 波.基于模糊C均值聚類的作物病害葉片圖像分割方法研究[J].農業工程學報,2008,24(9):136-140.

[8] 崔彬彬,王汝霖,李春梅,等.基于VB與MATLAB的圖像處理軟件設計[J].微計算機信息,2006,22(30):260-262.

[9] 陳慧楠.玉米、黃瓜葉部病害的圖像處理技術研究[D].沈陽:沈陽理工大學,2008.

[10] 趙玉霞,王克如,白中英,等.基于圖像識別的玉米葉部病害診斷研究[J].中國農業科學,2007,40(4):698-703.endprint

3.3 VB中界面設計及代碼編寫

窗體菜單設計采用下拉式,共包括文件、圖像預處理、圖像分割和幫助4個主菜單,文件中包括打開、保存和退出子菜單,圖像預處理包括灰度化和中值濾波子菜單;圖像分割中包括迭代閾值分割和形態學處理子菜單;幫助菜單中是簡單操作的說明。窗體中包括4個image對象,分別用來顯示原圖像、中值濾波圖像、迭代閾值分割圖像和形態學操作圖像。一個通用對話框CommonDialog1用于文件的打開及保存。相關代碼如下:

Public Filename As String

Private imag As process.processclass '定義類實例

'窗體裝載時,創建新的類變量

Private Sub Form_Load()

Set imag = New process.processclass

End Sub

‘打開圖像顯示在Image1圖像框中

Private Sub openfile_Click()

CommonDialog1.Filter = “(*.*)|*.*”

CommonDialog1.ShowOpen

Filename = CommonDialog1.Filename

Image1.Picture = LoadPicture(Filename)

End Sub

‘調用迭代閾值分割算法并顯示分割圖像在Image3中

Private Sub iteration_Click()

Call imag.iteration(1, result, Filename)

Image3.Picture = Clipboard.GetData()

End Sub

3.4 運行結果及分析

圖1為以灰斑病圖像為例的處理結果,包括原圖像、中值濾波后的圖像、迭代閾值分割后的圖像和形態學處理圖像。從圖1中第3幅圖像可以看出迭代閾值法分割出了二值圖像,葉片病變部位和健康部位基本分開,但圖像中有小的噪聲,病變部位內部有小的空洞,還有一些誤分割(邊緣不連續)。圖1中第4幅圖像是采用形態學運算中的開運算和閉運算去噪、填充空洞和邊緣連接后得到的圖像,可以看出圖像的噪聲、空洞和斷開的邊緣基本去除。

4 小結

采用迭代閾值分割法對玉米病斑圖像進行分割得到二值圖像,然后使用形態學上的閉運算和開運算去除噪聲、填充空洞和邊緣連接;利用VB的可視化界面和Matlab強大的計算及繪圖功能設計玉米病斑圖像分割軟件,大大提高了圖像處理的操作性,且可脫離Matlab環境運行。運行結果表明,采用的迭代閾值分割算法和形態學上的閉開運算相結合的方法對玉米病害圖像有很好的分割效果。該系統的開發對玉米病害圖像自動識別系統的開發具有重要意義。

參考文獻:

[1] 陳月華,胡曉光,張長利.基于機器視覺的小表害蟲分割算法研究[J].農業工程學報,2007,23(12):187-19.

[2] 馬 旭,齊 龍,張小超,等.基于模糊聚類的玉米大斑病害圖像的分割技術[J].農機化研究,2008(12):24-26.

[3] 馬曉丹,關海鷗,黃 燕.基于圖像處理的玉米葉部染病程度的研究[J].農機化研究,2009,31(11):102-104.

[4] 劉新銘,項 伍,孟維娟.用VB實現MATLAB的圖像處理功能[J].上海電機技術高等專科學校學報,2004,7(4):250-253.

[5] 胡江萍,譚躍剛.用VB與Matlab開發動態圖像處理軟件的方法[J].武漢理工大學學報(信息與管理工程版),2003,25(1):32-34.

[6] 馬 駿,王建華.一種基于數學形態學的植物病蟲識別方法[J].深圳大學學報理工版,2004,21(1):72-75.

[7] 毛罕平,張艷誠,胡 波.基于模糊C均值聚類的作物病害葉片圖像分割方法研究[J].農業工程學報,2008,24(9):136-140.

[8] 崔彬彬,王汝霖,李春梅,等.基于VB與MATLAB的圖像處理軟件設計[J].微計算機信息,2006,22(30):260-262.

[9] 陳慧楠.玉米、黃瓜葉部病害的圖像處理技術研究[D].沈陽:沈陽理工大學,2008.

[10] 趙玉霞,王克如,白中英,等.基于圖像識別的玉米葉部病害診斷研究[J].中國農業科學,2007,40(4):698-703.endprint

3.3 VB中界面設計及代碼編寫

窗體菜單設計采用下拉式,共包括文件、圖像預處理、圖像分割和幫助4個主菜單,文件中包括打開、保存和退出子菜單,圖像預處理包括灰度化和中值濾波子菜單;圖像分割中包括迭代閾值分割和形態學處理子菜單;幫助菜單中是簡單操作的說明。窗體中包括4個image對象,分別用來顯示原圖像、中值濾波圖像、迭代閾值分割圖像和形態學操作圖像。一個通用對話框CommonDialog1用于文件的打開及保存。相關代碼如下:

Public Filename As String

Private imag As process.processclass '定義類實例

'窗體裝載時,創建新的類變量

Private Sub Form_Load()

Set imag = New process.processclass

End Sub

‘打開圖像顯示在Image1圖像框中

Private Sub openfile_Click()

CommonDialog1.Filter = “(*.*)|*.*”

CommonDialog1.ShowOpen

Filename = CommonDialog1.Filename

Image1.Picture = LoadPicture(Filename)

End Sub

‘調用迭代閾值分割算法并顯示分割圖像在Image3中

Private Sub iteration_Click()

Call imag.iteration(1, result, Filename)

Image3.Picture = Clipboard.GetData()

End Sub

3.4 運行結果及分析

圖1為以灰斑病圖像為例的處理結果,包括原圖像、中值濾波后的圖像、迭代閾值分割后的圖像和形態學處理圖像。從圖1中第3幅圖像可以看出迭代閾值法分割出了二值圖像,葉片病變部位和健康部位基本分開,但圖像中有小的噪聲,病變部位內部有小的空洞,還有一些誤分割(邊緣不連續)。圖1中第4幅圖像是采用形態學運算中的開運算和閉運算去噪、填充空洞和邊緣連接后得到的圖像,可以看出圖像的噪聲、空洞和斷開的邊緣基本去除。

4 小結

采用迭代閾值分割法對玉米病斑圖像進行分割得到二值圖像,然后使用形態學上的閉運算和開運算去除噪聲、填充空洞和邊緣連接;利用VB的可視化界面和Matlab強大的計算及繪圖功能設計玉米病斑圖像分割軟件,大大提高了圖像處理的操作性,且可脫離Matlab環境運行。運行結果表明,采用的迭代閾值分割算法和形態學上的閉開運算相結合的方法對玉米病害圖像有很好的分割效果。該系統的開發對玉米病害圖像自動識別系統的開發具有重要意義。

參考文獻:

[1] 陳月華,胡曉光,張長利.基于機器視覺的小表害蟲分割算法研究[J].農業工程學報,2007,23(12):187-19.

[2] 馬 旭,齊 龍,張小超,等.基于模糊聚類的玉米大斑病害圖像的分割技術[J].農機化研究,2008(12):24-26.

[3] 馬曉丹,關海鷗,黃 燕.基于圖像處理的玉米葉部染病程度的研究[J].農機化研究,2009,31(11):102-104.

[4] 劉新銘,項 伍,孟維娟.用VB實現MATLAB的圖像處理功能[J].上海電機技術高等專科學校學報,2004,7(4):250-253.

[5] 胡江萍,譚躍剛.用VB與Matlab開發動態圖像處理軟件的方法[J].武漢理工大學學報(信息與管理工程版),2003,25(1):32-34.

[6] 馬 駿,王建華.一種基于數學形態學的植物病蟲識別方法[J].深圳大學學報理工版,2004,21(1):72-75.

[7] 毛罕平,張艷誠,胡 波.基于模糊C均值聚類的作物病害葉片圖像分割方法研究[J].農業工程學報,2008,24(9):136-140.

[8] 崔彬彬,王汝霖,李春梅,等.基于VB與MATLAB的圖像處理軟件設計[J].微計算機信息,2006,22(30):260-262.

[9] 陳慧楠.玉米、黃瓜葉部病害的圖像處理技術研究[D].沈陽:沈陽理工大學,2008.

[10] 趙玉霞,王克如,白中英,等.基于圖像識別的玉米葉部病害診斷研究[J].中國農業科學,2007,40(4):698-703.endprint

主站蜘蛛池模板: 亚洲性影院| 亚洲免费黄色网| 国产毛片久久国产| 国产污视频在线观看| 久久婷婷人人澡人人爱91| 国产美女一级毛片| 日韩在线2020专区| 东京热av无码电影一区二区| 国产视频 第一页| 国产美女在线免费观看| 国产精品任我爽爆在线播放6080 | 在线观看国产黄色| 久久久久无码精品国产免费| 亚洲视频在线网| 夜精品a一区二区三区| lhav亚洲精品| 四虎永久在线精品影院| 欧美精品一区在线看| 久久狠狠色噜噜狠狠狠狠97视色| 正在播放久久| 国内熟女少妇一线天| 手机在线看片不卡中文字幕| 成人韩免费网站| 在线观看91精品国产剧情免费| 亚洲视频三级| 99热这里只有精品免费| 欧洲亚洲一区| 国产欧美综合在线观看第七页| 国产小视频免费| 男女精品视频| 亚洲欧美成人网| 亚洲天堂久久| 99re经典视频在线| 美女一区二区在线观看| 国产在线观看高清不卡| 美女一区二区在线观看| 欧美成一级| 久久国产av麻豆| 男女性色大片免费网站| 久久久久久国产精品mv| 女同久久精品国产99国| 欧美区国产区| 色偷偷综合网| 欧美在线天堂| 91探花在线观看国产最新| 日本欧美视频在线观看| 色综合久久无码网| 国产真实乱了在线播放| 欧美www在线观看| 日韩毛片免费观看| 极品尤物av美乳在线观看| 亚洲系列无码专区偷窥无码| 久久人人97超碰人人澡爱香蕉 | 久久黄色影院| 国产综合欧美| 天天色综网| 中文字幕一区二区人妻电影| 毛片网站在线看| 男女精品视频| 国产精品福利尤物youwu| 亚洲一道AV无码午夜福利| 国产性爱网站| 久久青草热| 免费又爽又刺激高潮网址| 国产欧美网站| 国产麻豆aⅴ精品无码| AV网站中文| 亚洲无码免费黄色网址| 露脸国产精品自产在线播| 亚洲精品视频在线观看视频| 国产爽爽视频| 日本影院一区| 久久久精品无码一区二区三区| 亚洲综合片| 日韩在线永久免费播放| 亚洲无线国产观看| 久久国产精品国产自线拍| av色爱 天堂网| 精品伊人久久久大香线蕉欧美| 久久无码高潮喷水| 亚洲国产精品美女| 97免费在线观看视频|