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硬币定位相关推荐

  1. matlab缩小矩阵尺寸,Matlab中对矩阵使用矩阵尺寸的索引

    转自stackoverflow: Addressing Matlab matrix with Index-matrix 涉及bsxfun的使用.Addressing Matlab matrix wit ...

  2. matlab是那个国家,这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色,拍摄的时候反光比较少...

    这是一个老外写的利用曲率来识别硬币的MATLAB程序.作者所在国家的硬币偏黄色,拍摄的时候反光比较少 2016-08-22 0 0 0 暂无评分 其他 1 积分下载 如何获取积分? 这是一个老外写的利 ...

  3. 基于matlab测量物体直径,基于MATLAB的零件尺寸检测误差分析的软件设计

    ISSN1672-4305 CN12-1352/N 实 验 室 科 学 LABORATORY SCIENCE 第 14 卷 第 4 期 2011 年 8 月 Vol. 14 No. 4 Aug. 20 ...

  4. Matlab利用膨胀腐蚀计算硬币数目

    Matlab利用膨胀腐蚀计算硬币数目 这段时间一直在学习Matlab图像处理,浅浅的记录一下一个简单的膨胀腐蚀算法. sample04.jpg 代码如下: %%计算图中硬币的数量I=imread('s ...

  5. matlab硬币计数设计,统计硬币数量matlab程序

    %clear all; %figure %I=rgb2gray(imread('')); %% 转化为二值图像 coin1 = im2bw(imread('')); %% 填充图像区域和空洞 coin ...

  6. 基于matlab测量物体直径,基于MATLAB视频工件处理的在线检测.doc

    摘要:这些年来,基于Matlab视频处理工件的尺寸测量方法技术已经深入到各行各业,实现了高精度测量和微小物体测量.它融入了各个学科的能源技术,成为了一门综合性的学科.收集图像信息是Matlab视频处理 ...

  7. 常见测量矩阵的MATLAB实现

    常见测量矩阵的MATLAB实现 下面以文献[吴赟.压缩感知测量矩阵的研究[D]. 西安电子科技大学硕士学位论文,2012]为依据,给出文献中2.2节内容所述的六种测量矩阵MATLAB实现代码,仅为一种 ...

  8. 声源定位matlab模拟,毕业论文-基于MATLAB的声源定位系统.doc

    PAGE PAGE 1 毕 业 设 计(论 文) 基于MATLAB的声源定位系统 专业年级 07级应用物理学 学 号 姓 名 指导教师 评 阅 人 二○一一年六月 中国 南京 河 海 大 学 本科毕业 ...

  9. matlab 测量矩阵,压缩感知中的常见测量矩阵及其MATLAB实现代码

    压缩感知中的常见测量矩阵及其MATLAB实现代码 压缩感知中的常见测量矩阵及其MATLAB实现代码 原文链接:http://blog.csdn.net/jbb0523/article/details/ ...

最新文章

  1. AI技术必备资源汇总
  2. WinForm禁用窗体自带的关闭功能
  3. Sql server 获得某一部门下的所有子部门。根据子部门获得它的上级部门。
  4. C# LINQ(5)
  5. js导入,导出exel表格
  6. PyTorch基础(part3)
  7. C++ set insert的返回值
  8. Mysql索引扫盲总结
  9. 使用validation校验
  10. 拓展Revit的方式
  11. python之路--面向对象之封装
  12. (转)使用Vue-Router 2实现路由功能
  13. 智鹰科技——无人机线路巡检系统商业计划书
  14. 红米note10 pro刷机
  15. w10连接远程计算机控制,Win10远程桌面连接如何开启,3种方式助你远程控制
  16. outlook邮件插入HTML格式内容调试
  17. 如何更有效地使用kindle?
  18. c语言在屏幕上输出一个菱形图案,C语言 在屏幕上输出菱形图案
  19. png转pdf, pdf转png
  20. Linux常见问题及解决方案

热门文章

  1. 中国人非常喜欢6这个数字,因为大家总爱说66大顺啊。数学狂人李某人喜欢把什么都数字化,于是她把顺利这个词也定义了数量级,6代表1级顺利,66代表2级顺利,666代表3级顺利,以此类推。你看,数学狂人的
  2. 一边是大葱价格飞涨,一边是万斤柑橘烂地里,其中原因令人唏嘘
  3. 广州南沙新区规划发布 面积约803平方公里-广州-南沙新区-面积
  4. # 河源市产业发展可以这样试
  5. ironbot智能编程机器人_RoboSpaceIronBot机器人套件 | 老少皆宜的大玩具,Ironbot智能机器人DIY体验-极果...
  6. 在微信小程序中如何使用wx.onLocationChange()【转载】
  7. 学习并掌握结构化写作方法,提高写作能力 ——结构化写作学习笔记(2)
  8. python做什么最赚钱农村_农业种植致富项目:农村有2个不错的种植项目,投入不多,收益却比打工强...
  9. 微信的传播特性及传播模式 转!
  10. 现在分词和不定式都是可以做状语的,但二者有区别