【MATLAB】一个简单的程序实现细胞计数
已更新源码地址
链接:https://pan.baidu.com/s/1968eNwOr1HeaT8e9bQw6Fg
提取码:8zqy
##实现带UI界面的程序,对细胞计数
首先在创建一个图形用户界面,扩展名为.fIg的文件,在MATlAB命令窗口启动GUIDE,进行布局,大致布局为自己想要的界面,下图是我自己做的界面(图一)。可以选中属性进行编辑
右键按钮进入编辑器,即按钮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);
在进行去噪时,刚开始采用的是中值滤波,效果不佳,影响到了计数,后采用了形态学的闭运算进行处理,效果更佳。
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 01 1 10 1 0];
% B=strel('disk',3);%膨胀
for i =1:5A=imdilate(A,B);
end
%腐蚀
for i =1:6A=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】一个简单的程序实现细胞计数相关推荐
- python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程
笔者思虑再三还是决定选择图文(因为百家的视频发布画质真不怎么样[囧]). 笔者学习编程的时间也挺长的,因为业余,因为时间不多,各种原因,自学编程的路特别难走.然后笔者发现,自己能为小白贡献一些力量,然 ...
- 编写一个简单Java程序,计算银行年存款的本息
编写一个简单Java程序,计算银行年存款的本息 要求:程序运行后要求用户输入存款本金.年利率和存款年限,最后程序计算并输出相应年限后存款的金额.相应的计算公式为:存款总额=本金 * (1 + 利率)存 ...
- 如何编辑程序(一个简单的程序)
如何编辑程序(一个简单的程序) 运行Excel程序,创建一个新的站长工作簿(格式.xlsm),进入VBE,让我们开始编写一个站长列表的程序.程序运行后,一个对话框显示"你好,欢迎来到VBA& ...
- LabWindows_CVI测试技术及工程应用_学习笔记1(构建一个简单的程序)
构建一个简单的程序 1.创建工程文件 或File--〉New--〉Project(*.prj),默认名Untitled.prj,存储在Unititled.cws的工作空间中 File--〉Save U ...
- Protues的一个简单51程序仿真
Protues的一个简单51程序仿真 一.组装原件步骤 二.代码编写 三.仿真结果 四.总结 一.组装原件步骤 1.创建一个新的工程 2.找原件 3.将各元件连接起来,构成原理图 二.代码编写 1.打 ...
- matlab——一个简单的动物识别专家系统
本实验中用matlab实现一个简单的动物识别专家系统,该系统是用来识7种动物的,但在规则库中形成了15条规则.首先将动物分成哺乳动物.鸟.蹄类动物.肉食动物4大类,然后通过继续询问得到要的结果.本程序 ...
- OpenGL简介+一个简单的程序
OpenGL(全写Open Graphics Library) OpenGL是指定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的 ...
- revit二次开发概念_BIM百科 | Revit二次开发入门--创建一个简单的程序
获取<每日一技,我的成长轨迹>汇总 · 请访问柏慕联创官方网站: www.lcbim.com · 创建一个简单的Revit外部命令程序[Revit2017+VS2015]: 1.打开VS, ...
- Revit二次开发入门--创建一个简单的程序
创建一个简单的Revit外部命令程序[Revit2017+VS2015]: 1.打开VS,我的版本是VS2015,点击[新建项目]→[Visual C#]→[类库],然后输入程序名称,如:Hello ...
最新文章
- python装饰器作用-什么是Python装饰器,有什么作用?
- JUC并发编程九 并发架构--CAS
- SQL语句,统计一段时间内有多少个工作日
- KDD 2021 | 小红书推荐多样性解决方案:SSD在质量、多样性之间获得较好权衡
- c#XML的基本使用
- 计算机专业好还是铁道运输管理好,铁道运输管理专业主要是干什么的?
- MySQL入门之插入、删除、修改表数据
- Cow Contest(POJ-3660 )
- 今晚8点不见不散!余承东Vlog如此夸赞华为Mate30系列新机
- 删除卸载不干净的任务 vmware卸载不干净->服务清理 / 注册表清理
- Draco压缩算法使用
- Java开发从零开始!java游戏服务器开发教程
- 人工智能可以应用在哪些领域?
- 做程序界中的死神,锻造合适的斩魂刀
- 国产开源项目管理软件ZenTao
- python用pandas读取excel_Python 中利用Pandas处理复杂的Excel数据
- IE高版本如何设置IE低版本进行测试
- 2.2 Collections类 (Collections源码解析)
- 关于时区的环境变量TZ
- 《认知红利》读书总结+思考