matlab 控制图例个数,MATLAB 识别图像中米粒个数
clc,clear,close all; % 清除缓存
% 2019/10/11 星期五 DAY12
% 功能:识别照片中米粒个数并作出相应标记、计数
% 说明:无
%
%% 形态学处理=数米粒
g=imread('rice.png');
SE=strel('disk',4); % 形态结构元素
X1=imerode(g,SE); % 二值图像腐蚀
I=imdilate(X1,SE); % 二值图像膨胀
% I=imread('rice.png');
BG=imopen(I,strel('disk',15));
% 对图像实现开运算,开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出。
% se=strel('disk',5);用圆盘形结构元素通过开运算 移除小于5像素的雪花
I2=imsubtract(I,BG); % 减法运算 从一个图像中减去另一个图像或从图像中减去常量
level=graythresh(I2); % 灰谷 基于otsu方法的全局图像阈值
bw2=imbinarize(I2,level); % 基于阈值将图像转换为二值图像
[labeLED,numObjects]=bwlabel(bw2,8);
max(max(labeled))
f=bw2;
[L,n]= bwlabel(f);
% 函数find(见5.2.2节)在处理标记矩阵时非常有用。
% 例如,以下对find的调用将返回属于第三个对象的所有像素的行索引和列索引:
[r,c]=find(L==3); % 然后,利用r和C作为输入的mean函数来计算该对象的质心。
rbar = mean(r);
cbar = mean(c);
% 可以使用一个循环来计算和显示图像中全部对象的质心。
% 为了使质心叠置在图像上时可看到该质心,我们将使用中心为白色“*”符号的黑色圆标记来表示,如下所示:
figure
subplot(2,3,1),imshow(I);title('原图');
subplot(2,3,2),imshow(BG);title('背景');
subplot(2,3,3),imshow(I2);title('消除背景');
subplot(2,3,4),imshow(bw2);title('二值化');
subplot(2,3,5),imshow(f);title('标注');
hold on % So later plotting commands plot on top of the image.
for k = 1:n
[r,c]= find(L == k);
rbar = mean(r);
cbar = mean(c);
plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k','MarkeRFaceColor','k','MarkerSize',10);
plot(cbar,rbar,'Marker','*','MarkerEdgeColor','w'); % 标注*
% text(cbar,rbar,num2str(k),'Color','red','FontSize',14); % 标注标号
end
subplot(2,3,6),imshow(f);title('标注标号');
hold on % So later plotting commands plot on top of the image.
for k = 1:n
[r,c]= find(L == k);
rbar = mean(r);
cbar = mean(c);
plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10);
plot(cbar,rbar,'Marker','*','MarkerEdgeColor','w'); % 标注*
text(cbar,rbar,num2str(k),'Color','red','FontSize',14); % 标注标号
end
figure,imshow(f);title('标注标号');
hold on % So later plotting commands plot on top of the image.
for k = 1:n
[r,c]= find(L == k);
rbar = mean(r);
cbar = mean(c);
plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10);
plot(cbar,rbar,'Marker','*','MarkerEdgeColor','w'); % 标注*
text(cbar,rbar,num2str(k),'Color','red','FontSize',14); % 标注标号
end
matlab 控制图例个数,MATLAB 识别图像中米粒个数相关推荐
- 图像中米粒个数的识别(2)——如何从左到右依次给米粒计数
在上文MATLAB示例--图像中米粒个数的识别中,我详细介绍了图像中米粒个数的识别以及计数相关算法及程序实现.但是我们发现,最后的结果米粒计数好像是从任意位置开始的,那要如何从最左上端开始,到右下端结 ...
- MATLAB示例——图像中米粒个数的识别
目录 一.任务要求 二.图像处理 2.1 读取图像 2.2 形态学处理 2.3 二值化 2.4 对连通性进行标注 三.质心寻找及序号标注 3.1 质心寻找 3.2 序号标注 四.完整程序代码 一.任务 ...
- 【Matlab 控制】模仿绘制动态图像 保存动态图 GIF
模仿绘制动态图像 模仿绘制动态图像 保存为动态图 GIF 视频转 GIF 模仿绘制动态图像 clc;clear a=[1 2 3 4 5 6 7 8 9 ]; b=[2 4 8 16 30 40 50 ...
- matlab 控制命令,[转载]Matlab绘图基本控制命令
图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令: axis: 人工选择坐标轴尺寸. clf:清图形窗口. ginp ...
- 【Matlab 控制】利用 Matlab Function 绘制分段函数
利用 Switch block 利用 Matlab Function block function [mean, stdev] = fcn(vals) % #codegen% calculates a ...
- matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统
一.课题名称[Q1321814823] 基于MATLAB模板匹配的车牌识别系统 二.课题背景 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.针对此 ...
- 【数字图像处理】求图像rice.png中米粒个数
图像处理课程上老师布置的任务,要求求出图片rice.png中米粒的个数及其各米粒的大小. rice.png: 大体步骤是:首先进行边缘检测,然后进行填充.然后进行开运算,可以使一些轻微连着的米粒分开来 ...
- matlab——红绿灯颜色及数字识别(二)
实验总结:红绿灯颜色以及数字识别(二):提取信号灯区域 一.知识背景 这里放一些链接来供查阅参考: 1.连通量函数: Matlab中bwlabel函数的使用 2.膨胀.腐蚀: 形态学操作:膨胀 ...
- 【图像处理matlab】PCA+KNN人脸识别 ORL人脸数据集
文章目录 0.写在前面 1. 数据集导入与划分 2. train-PCA构建脸空间 2.1 原始数据导入 2.2 去中心化 2.3 求解协方差矩阵.特征值.特征向量 2.4 特征脸选取--脸空间 3. ...
最新文章
- 伍六七带你学算法——被忽视的数学公式
- Java面试题汇总2021最新(集合泛型含答案下载)
- 博士笔记 | 深入理解深度学习语义分割
- 直播内容不合规怎么办?智能AI为您解决审核难题
- spring boot / cloud (十七) 快速搭建注册中心和配置中心
- aop springboot 传入参数_Spring、SpringMVC和SpringBoot看这一篇就够了!
- node-inspector 在chrome里调试node代码
- VB6.0和VB.Net对照表
- java 内存情况_java查看jvm内存使用情况
- JavaScript学习五
- 2句搞定 DataGridView 让选中行在可视范围内
- Python稳基修炼的经典案例13(计算机二级、初学者必会的字符文件处理)
- vivado2021.2安装及验证教程(绝大部分适用于同软件其他版本)
- LOLBox多玩饭盒Android源码
- NET 常见网络命令
- 肖忠付武汉大学计算机学院,丁立新(武汉大学计算机学院教授)_百度百科
- 什么是AOP(通俗易懂)
- KY-RTI分布仿真技术:第四章 C++程序设计
- FF7 中的最大伤害分析
- Element select表单必填验证