matlab测量硬币尺寸,MATLAB硬币定位
1,获取图片
clear all;
clc;
im=imread(‘coin.jpg’);
2,灰度化,并且进行均值滤波
imm = rgb2gray(im);
%均值滤波
imgray=filter2(fspecial(‘average’,5),imm)/255;
3,腐蚀膨胀减运算
%腐蚀膨胀相减弱化背景
ele=strel(‘rectangle’,[5,5]);
im1=imerode(imgray,ele);
im2=imdilate(im1,ele);
im3 = imgray - im2;
4,二值化
imbw = im3 >= 0.03;
%去除小区域
im4=bwareaopen(imbw,20);
%开闭运算形态学处理
ele=strel(‘rectangle’,[10,10]);
im2=imdilate(im4,ele);
im4=bwareaopen(im2,50);
im1=imerode(im4,ele);
%填充孔洞
im2 = imfill(im1,’holes’);
im3=imerode(im2,ele);
im4=bwareaopen(im3,50);
im5=imdilate(im4,ele);
5,获得连通区域中心
L = bwlabel(im5);
s = regionprops(L, ‘centroid’);
centroids = cat(1, s.Centroid);
6,得到坐标进行下一步运算
p=ceil(centroids);
%好像图像宽为第二列,高为第一列
x=p(:,2);
y=p(:,1);
7,获得每个连通区域半径
len = zeros(2,length(x));
for i = 1 : length(x)
j = 0;
while (im5(x(i),y(i)+j) > 0)
j = j+1;
end
len(2,i) = j;
j = 0;
while (im5(x(i)+j,y(i)) > 0)
j = j+1;
end
len(1,i) = j;
end
8,去掉小区域,小于最大半径一半的认为可以去掉
maxlen = max(max(len));
for i = 1:length(len)
if len(1,i) < maxlen*0.5 || len(2,i) < maxlen*0.5
len(1,i) = 0;
len(2,i) = 0;
end
end
9,得到坐标与半径
pos = zeros(1,3);
for i = 1:length(len)
if abs(len(1,i) - len(2,i)) < 0.1 * len(1,i)
pos = [pos;x(i),y(i),(len(1,i) + len(2,i)) / 2];
end
end
10,显示图片,画出目标区域
imshow(im);
% hold on
% plot(centroids(:,1), centroids(:,2), ‘r+’)
% hold off
for i = 2:length(pos)
hold on;
rectangle(‘Position’,[pos(i,2)-pos(i,3),pos(i,1)-pos(i,3),pos(i,3)*2,pos(i,3)*2],’Curvature’,[1,1],’edgecolor’,’r’,’linewidth’,2);
% hold off;
end
matlab测量硬币尺寸,MATLAB硬币定位相关推荐
- matlab缩小矩阵尺寸,Matlab中对矩阵使用矩阵尺寸的索引
转自stackoverflow: Addressing Matlab matrix with Index-matrix 涉及bsxfun的使用.Addressing Matlab matrix wit ...
- matlab是那个国家,这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色,拍摄的时候反光比较少...
这是一个老外写的利用曲率来识别硬币的MATLAB程序.作者所在国家的硬币偏黄色,拍摄的时候反光比较少 2016-08-22 0 0 0 暂无评分 其他 1 积分下载 如何获取积分? 这是一个老外写的利 ...
- 基于matlab测量物体直径,基于MATLAB的零件尺寸检测误差分析的软件设计
ISSN1672-4305 CN12-1352/N 实 验 室 科 学 LABORATORY SCIENCE 第 14 卷 第 4 期 2011 年 8 月 Vol. 14 No. 4 Aug. 20 ...
- Matlab利用膨胀腐蚀计算硬币数目
Matlab利用膨胀腐蚀计算硬币数目 这段时间一直在学习Matlab图像处理,浅浅的记录一下一个简单的膨胀腐蚀算法. sample04.jpg 代码如下: %%计算图中硬币的数量I=imread('s ...
- matlab硬币计数设计,统计硬币数量matlab程序
%clear all; %figure %I=rgb2gray(imread('')); %% 转化为二值图像 coin1 = im2bw(imread('')); %% 填充图像区域和空洞 coin ...
- 基于matlab测量物体直径,基于MATLAB视频工件处理的在线检测.doc
摘要:这些年来,基于Matlab视频处理工件的尺寸测量方法技术已经深入到各行各业,实现了高精度测量和微小物体测量.它融入了各个学科的能源技术,成为了一门综合性的学科.收集图像信息是Matlab视频处理 ...
- 常见测量矩阵的MATLAB实现
常见测量矩阵的MATLAB实现 下面以文献[吴赟.压缩感知测量矩阵的研究[D]. 西安电子科技大学硕士学位论文,2012]为依据,给出文献中2.2节内容所述的六种测量矩阵MATLAB实现代码,仅为一种 ...
- 声源定位matlab模拟,毕业论文-基于MATLAB的声源定位系统.doc
PAGE PAGE 1 毕 业 设 计(论 文) 基于MATLAB的声源定位系统 专业年级 07级应用物理学 学 号 姓 名 指导教师 评 阅 人 二○一一年六月 中国 南京 河 海 大 学 本科毕业 ...
- matlab 测量矩阵,压缩感知中的常见测量矩阵及其MATLAB实现代码
压缩感知中的常见测量矩阵及其MATLAB实现代码 压缩感知中的常见测量矩阵及其MATLAB实现代码 原文链接:http://blog.csdn.net/jbb0523/article/details/ ...
最新文章
- AI技术必备资源汇总
- WinForm禁用窗体自带的关闭功能
- Sql server 获得某一部门下的所有子部门。根据子部门获得它的上级部门。
- C# LINQ(5)
- js导入,导出exel表格
- PyTorch基础(part3)
- C++ set insert的返回值
- Mysql索引扫盲总结
- 使用validation校验
- 拓展Revit的方式
- python之路--面向对象之封装
- (转)使用Vue-Router 2实现路由功能
- 智鹰科技——无人机线路巡检系统商业计划书
- 红米note10 pro刷机
- w10连接远程计算机控制,Win10远程桌面连接如何开启,3种方式助你远程控制
- outlook邮件插入HTML格式内容调试
- 如何更有效地使用kindle?
- c语言在屏幕上输出一个菱形图案,C语言 在屏幕上输出菱形图案
- png转pdf, pdf转png
- Linux常见问题及解决方案
热门文章
- 中国人非常喜欢6这个数字,因为大家总爱说66大顺啊。数学狂人李某人喜欢把什么都数字化,于是她把顺利这个词也定义了数量级,6代表1级顺利,66代表2级顺利,666代表3级顺利,以此类推。你看,数学狂人的
- 一边是大葱价格飞涨,一边是万斤柑橘烂地里,其中原因令人唏嘘
- 广州南沙新区规划发布 面积约803平方公里-广州-南沙新区-面积
- # 河源市产业发展可以这样试
- ironbot智能编程机器人_RoboSpaceIronBot机器人套件 | 老少皆宜的大玩具,Ironbot智能机器人DIY体验-极果...
- 在微信小程序中如何使用wx.onLocationChange()【转载】
- 学习并掌握结构化写作方法,提高写作能力 ——结构化写作学习笔记(2)
- python做什么最赚钱农村_农业种植致富项目:农村有2个不错的种植项目,投入不多,收益却比打工强...
- 微信的传播特性及传播模式 转!
- 现在分词和不定式都是可以做状语的,但二者有区别