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 识别图像中米粒个数相关推荐

  1. 图像中米粒个数的识别(2)——如何从左到右依次给米粒计数

    在上文MATLAB示例--图像中米粒个数的识别中,我详细介绍了图像中米粒个数的识别以及计数相关算法及程序实现.但是我们发现,最后的结果米粒计数好像是从任意位置开始的,那要如何从最左上端开始,到右下端结 ...

  2. MATLAB示例——图像中米粒个数的识别

    目录 一.任务要求 二.图像处理 2.1 读取图像 2.2 形态学处理 2.3 二值化 2.4 对连通性进行标注 三.质心寻找及序号标注 3.1 质心寻找 3.2 序号标注 四.完整程序代码 一.任务 ...

  3. 【Matlab 控制】模仿绘制动态图像 保存动态图 GIF

    模仿绘制动态图像 模仿绘制动态图像 保存为动态图 GIF 视频转 GIF 模仿绘制动态图像 clc;clear a=[1 2 3 4 5 6 7 8 9 ]; b=[2 4 8 16 30 40 50 ...

  4. matlab 控制命令,[转载]Matlab绘图基本控制命令

    图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令: axis: 人工选择坐标轴尺寸. clf:清图形窗口. ginp ...

  5. 【Matlab 控制】利用 Matlab Function 绘制分段函数

    利用 Switch block 利用 Matlab Function block function [mean, stdev] = fcn(vals) % #codegen% calculates a ...

  6. matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统

    一.课题名称[Q1321814823] 基于MATLAB模板匹配的车牌识别系统 二.课题背景 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.针对此 ...

  7. 【数字图像处理】求图像rice.png中米粒个数

    图像处理课程上老师布置的任务,要求求出图片rice.png中米粒的个数及其各米粒的大小. rice.png: 大体步骤是:首先进行边缘检测,然后进行填充.然后进行开运算,可以使一些轻微连着的米粒分开来 ...

  8. matlab——红绿灯颜色及数字识别(二)

    实验总结:红绿灯颜色以及数字识别(二):提取信号灯区域 一.知识背景 这里放一些链接来供查阅参考: 1.连通量函数:   Matlab中bwlabel函数的使用 2.膨胀.腐蚀:   形态学操作:膨胀 ...

  9. 【图像处理matlab】PCA+KNN人脸识别 ORL人脸数据集

    文章目录 0.写在前面 1. 数据集导入与划分 2. train-PCA构建脸空间 2.1 原始数据导入 2.2 去中心化 2.3 求解协方差矩阵.特征值.特征向量 2.4 特征脸选取--脸空间 3. ...

最新文章

  1. 伍六七带你学算法——被忽视的数学公式
  2. Java面试题汇总2021最新(集合泛型含答案下载)
  3. 博士笔记 | 深入理解深度学习语义分割
  4. 直播内容不合规怎么办?智能AI为您解决审核难题
  5. spring boot / cloud (十七) 快速搭建注册中心和配置中心
  6. aop springboot 传入参数_Spring、SpringMVC和SpringBoot看这一篇就够了!
  7. node-inspector 在chrome里调试node代码
  8. VB6.0和VB.Net对照表
  9. java 内存情况_java查看jvm内存使用情况
  10. JavaScript学习五
  11. 2句搞定 DataGridView 让选中行在可视范围内
  12. Python稳基修炼的经典案例13(计算机二级、初学者必会的字符文件处理)
  13. vivado2021.2安装及验证教程(绝大部分适用于同软件其他版本)
  14. LOLBox多玩饭盒Android源码
  15. NET 常见网络命令
  16. 肖忠付武汉大学计算机学院,丁立新(武汉大学计算机学院教授)_百度百科
  17. 什么是AOP(通俗易懂)
  18. KY-RTI分布仿真技术:第四章 C++程序设计
  19. FF7 中的最大伤害分析
  20. Element select表单必填验证

热门文章

  1. 各个地图坐标转换的问题
  2. vue 可拖拽组件的实现
  3. strcmp|wcscmp 与 stricmp|wcsicmp
  4. 基于ssm的高校校友信息管理系统设计与实现-计算机毕业设计
  5. pydicom图像数据的保存
  6. 纯净版Win10系统重装教程(超详细)
  7. 岗位认识---算法工程师、数据分析
  8. e书久久的电子书怎样反编译?
  9. erp服务器安装虚拟打印机,ERP-U8,安装了打印机驱动,可是打印机与传真里面没有虚拟打印机,无法会话打印怎么办?...
  10. 不懂SEO?一篇文章带你精通SEO优化