資源簡介
植物分類是植物科學研究領域和農(nóng)林業(yè)生產(chǎn)經(jīng)營中重要的基礎性工作,植物分類
學是一項具有長遠意義的基礎性研究,其主要的分類依據(jù)是植物的外觀特征,包括葉、
花、枝干、樹皮、果實等。因此,花卉分類是植物分類學的重要部分,利用計算機進
行花卉自動種類識別具有重要意義。
本文從常見的觀賞花卉入手,探索了基于花朵數(shù)字圖像對花卉進行種類識別的方
法。在己有研究的基礎上,針對花朵的生長特點定義了顏色、紋理、形狀等方面的特
征,并使用分級SVM分類器對花卉圖像進行了識別。論文提出了分區(qū)域特征提取以
及極坐標系下的灰度共生矩陣適于描述放射狀生長的花朵紋理特征,對提高系統(tǒng)的識
別準確率具有重要意義,此外,所設計的分級SVM分類器有效降低了分類器對樣本
種類數(shù)量的敏感性,克服了SVM分類器對大樣本量識別準確率低的問題。本文構(gòu)建
了基于數(shù)字圖像的花卉種類識別系統(tǒng),并用五十種花卉對系統(tǒng)進行了測試,達到了
95.72%的識別準確率。實驗結(jié)果表明,本文所實現(xiàn)的花卉種類識別系統(tǒng)具有較高的識
別準確率和穩(wěn)定性。

代碼片段和文件信息
function?varargout?=?flower(varargin)
gui_Singleton?=?1;
gui_State?=?struct(‘gui_Name‘???????mfilename?...
???????????????????‘gui_Singleton‘??gui_Singleton?...
???????????????????‘gui_OpeningFcn‘?@flower_OpeningFcn?...
???????????????????‘gui_OutputFcn‘??@flower_OutputFcn?...
???????????????????‘gui_LayoutFcn‘??[]??...
???????????????????‘gui_Callback‘???[]);
if?nargin?&&?ischar(varargin{1})
????gui_State.gui_Callback?=?str2func(varargin{1});
end
if?nargout
????[varargout{1:nargout}]?=?gui_mainfcn(gui_State?varargin{:});
else
????gui_mainfcn(gui_State?varargin{:});
end
function?flower_OpeningFcn(hobject?eventdata?handles?varargin)
handles.output?=?hobject;
guidata(hobject?handles);
function?varargout?=?flower_OutputFcn(hobject?eventdata?handles)?
varargout{1}?=?handles.output;
function?pushbutton1_Callback(hobject?eventdata?handles)
[filenamepathname]=uigetfile({‘*.jpg‘;...
????‘*.gif‘;‘*.*‘}...
????‘Pick?an?Image?File‘);
X=imread([pathnamefilename]);
cla(handles.axes1);
axes(handles.axes1);
imshow(X);%在h0上顯示原始圖像
function?edit1_CreateFcn(hobject?eventdata?handles)
if?ispc?&&?isequal(get(hobject‘BackgroundColor‘)?get(0‘defaultUicontrolBackgroundColor‘))
????set(hobject‘BackgroundColor‘‘white‘);
end
function?pushbutton2_Callback(hobject?eventdata?handles)
Files?=?dir(fullfile(‘C:\Users\lenove\Desktop\項目\項目10365+花卉圖像識別與分類\程序\flower分類\train‘‘*.jpg‘));
LengthFiles?=?length(Files);%文件夾圖片個數(shù)
height=50;width=50;%特征向量大小,可以調(diào)整
w1?=?zeros(height*widthLengthFiles/3);%第一類訓練矩陣
w2?=??zeros(height*widthLengthFiles/3);%第二類訓練矩陣
w3?=??zeros(height*widthLengthFiles/3);%第三類訓練矩陣
T=20.78345;
%第一類圖像
for?i?=?1:LengthFiles/3
???img?=?imread(strcat(‘C:\Users\lenove\Desktop\項目\項目10365+花卉圖像識別與分類\程序\flower分類\train\‘Files(i).name));%讀取圖像
????img1?=?rgb2gray(img);%轉(zhuǎn)換成灰度圖
????if?i>=1?&&?i<=5
%?????figure;imshow(img1);
????end
????[mn]?=?size(img1);
????m1?=?round(m/2);n1=round(n/2);
????img11?=?img1(m1-199:m1+200n1-199:n1+200);%截取中間圖像
????img2?=?imresize(img11[heightwidth]);%調(diào)整大小
????w1(:i)?=?double(img2(:));?%得到訓練向量
end
%第二類圖像
for?i?=?LengthFiles/3+1:2*LengthFiles/3
????img?=imread(strcat(‘C:\Users\lenove\Desktop\項目\項目10365+花卉圖像識別與分類\程序\flower分類\train\‘Files(i).name));
????img1?=?rgb2gray(img);
????if?i>=1?&&?i<=5
%?????figure;imshow(img1);
????end
????[mn]?=?size(img1);
????m1?=?round(m/2);n1=round(n/2);
????img11?=?img1(m1-199:m1+200n1-199:n1+200);
????img2?=?imresize(img11[heightwidth]);
????w2(:i-LengthFiles/3)?=?double(img2(:));?
end
%第三類圖像
for?i?=2*LengthFiles/3+1:LengthFiles
????img?=?imread(strcat(‘C:\Users\lenove\Desktop\項目\項目10365+花卉圖像識別與分類\程序\flower分類\train\‘Files(i).name));
????img1?=?rgb2gray(img);
????if?i>=1?&&?i<=5
%?????figure;imshow(img1);
????end
????[mn]?=?size(img1);
????m1?=?round(m/2);n1=round(n/2);
????img11?=?img1(m1-199:m1+200n1-199:n1+200);
????img2?=?imresize(img11[heightwidth]);
????w3(:i-2*LengthFiles/3)?=?double(img2(:));?
end
%計算樣本均值
m1=mean(w1‘)‘;
m2=mean(w2‘)‘;
m3?=?mean(w3‘
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-10?15:39??源碼\
?????文件????????5267??2017-03-25?11:31??源碼\flower.fig
?????文件????????5846??2017-03-25?11:32??源碼\flower.m
?????文件????????4236??2017-03-09?20:52??源碼\mySVM.m
?????文件???????12124??2017-03-23?20:17??源碼\說明文檔.docx
?????目錄???????????0??2018-10-10?15:39??演示\
?????文件?????6993179??2017-03-09?21:02??演示\10365.wmv
?????文件??????????64??2018-10-10?16:34??說明.txt
?????目錄???????????0??2018-10-10?15:38??需求\
?????文件???????11858??2017-02-26?14:05??需求\任務書.docx
評論
共有 條評論