一、简介
基于matlab的玉米种子计数GUI界面,玉米种子计数是农业生产中一项重要的任务,它对于评估玉米产量、优化种植策略以及指导农业生产具有重要意义。随着计算机视觉和图像处理技术的发展,利用Matlab等数学软件进行玉米种子计数已经成为一种高效、准确的方法。
二、部分源码
function pushbutton1_Callback(hObject, eventdata, handles)
global I %定义一个全局变量im
[filename,pathname]=...
uigetfile({'*.*';'*.bmp';'*.tif';'*.png'},'select picture'); %选择图片路径
str=[pathname filename]; %合成路径+文件名
I=imread(str); %读取图片
axes(handles.axes1); %使用第一个axes
imshow(I);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close(gcf);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
tic
global I
axes(handles.axes1)
imshow(I);%原图
Ig = rgb2gray(I);
axes(handles.axes2)
imshow(Ig);%灰度图
Im=medfilt2(Ig,[3,3]);%取得图象的全局域值
axes(handles.axes3)
imshow(Im); %滤波图像
level = graythresh(Im); %获取图像二值化的阈值
bw = im2bw(Im,level); %二值化处理
axes(handles.axes4)
imshow(bw);
It=~bw;
SE = strel('disk',2);
A=imerode(It,SE);
axes(handles.axes5)
imshow(A);%腐蚀图像
SE1=strel('diamond',5);
A1=imdilate(A,SE1);
axes(handles.axes6)
imshow(A1);%膨胀图像
A2=A1;
axes(handles.axes7)
imshow(A1);%标记图像
三、运行结果
四、matlab版本
MATLAB R2019a
五、学习与交流
文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968
文中部分源码仅供参考,若需要全部代码可以私信