【MATLAB】一个简单的程序实现细胞计数

##实现带UI界面的程序,对细胞计数

首先在创建一个图形用户界面,扩展名为.fIg的文件,在MATlAB命令窗口启动GUIDE,进行布局,大致布局为自己想要的界面,下图是我自己做的界面(图一)。可以选中属性进行编辑 

【MATLAB】一个简单的程序实现细胞计数_第1张图片 图一 【MATLAB】一个简单的程序实现细胞计数_第2张图片 图二

右键按钮进入编辑器,即按钮1的回调函数,在函数里进行编辑  ,

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axis on  %关闭坐标显示
global im;%设置全局变量
[filename, pathname] =uigetfile({'*.Bmp';'*.jpg';'*.*'},'打开图片');
str=[pathname filename];
im=imread(str);
axes(handles.axes2);%显示在axes2位置上
imshow(im);

在进行阈值切割的时候,使用的阈值T是根据全局阈值计算出来的

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)
global im;
global im1;
T=globalthreshold( im );
im1=im2bw(im,T/255);
axes(handles.axes3);
imshow(im1);

在进行去噪时,刚开始采用的是中值滤波,效果不佳,影响到了计数,后采用了形态学的闭运算进行处理,效果更佳。

【MATLAB】一个简单的程序实现细胞计数_第3张图片 中值滤波 【MATLAB】一个简单的程序实现细胞计数_第4张图片 形态学闭运算

 

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)
global im1;
global A;
A=im1;
B=[0 1 0
   1 1 1
   0 1 0];
% B=strel('disk',3);

%膨胀
for i =1:5
    A=imdilate(A,B);
end
%腐蚀
for i =1:6
    A=imerode(A,B);
end
se1=strel('disk',1);%这里是创建一个半径为1的平坦型圆盘结构元素
A=imerode(A,se1);
axes(handles.axes4);
imshow(A);

最后进行计数

function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined .in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
%约 29个
global A;
[Label, Number]=bwlabel(A,4);
set(handles.edit1,'string',Number);

最终结果计数为31个,与人工数出一致,较为成功

【MATLAB】一个简单的程序实现细胞计数_第5张图片 软件界面

 

你可能感兴趣的:(【MATLAB】一个简单的程序实现细胞计数)