资源简介
内部有两个文件,.m文件为matlab代码,可以计算rice图片中的rice个数,直接可以运行。
代码片段和文件信息
% 首先进行边缘检测,然后进行填充。
% 然后进行开运算,可以使一些轻微连着的米粒分开来。
% 然后是遍历图片,把各米粒进行标号,从1开始从小到大标号。
% 每个米粒的各像素点值相同,第i个米粒的各像素点值均为i。
% 其中采用了队列,用数组模拟。最大的米粒标号便是米粒的总个数。
% 最后,遍历一遍图像数组,便可求出各米粒的面积。
%
clear;
close all;
I=imread(‘rice.jpg‘);
imshow(I);
title(‘原图‘);
I=rgb2gray(I);
J=edge(I‘canny‘);
%figureimshow(J);
K=imfill(J‘holes‘);
figureimshow(K); title(‘填充后结果‘);
SE=strel(‘disk‘3);%用于膨胀腐蚀及开闭运算等操作的结构元素对象
%对图像实现开运算,开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出。
L=imopen(KSE);
figureimshow(L); title(‘开运算后结果‘);
M=bwlabel(L4);%8联通域标记
figureimshow(M[]); title(‘识别的米粒‘);
%矩阵M的大小
[mn]=size(M);
num=0;%米粒的个数
for i=1:m
for j=1:n
if M(ij)>num%最大的label值即联通域的个数
num=M(ij);
end
end
end
area=zeros(1num);%记录各个米粒的大小
for i=1:m
for j=1:n
if M(ij)>0%不是背景,在联通域里面
area(1M(ij))=area(1M(ij))+1;%对应的米粒大小加一
end
end
end
disp(‘米粒个数:‘);
disp(num);
disp(‘各个米粒的大小‘);
area
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-26 22:10 rice\
文件 25164 2018-06-21 15:49 rice\rice.jpg
文件 1311 2018-06-25 21:28 rice\rice.m
- 上一篇:单像后方交会matlab代码
- 下一篇:点云三角剖分matlab代码
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论