用matlab实现对图像的面积测量_使用Matlab测量图像目标尺寸

7795fba15a1e82a6f252b4059bd3ad92.png

在传统的数字图像处理当中,边缘检测形态学为两门非常重要的技术,在笔者的第一篇文章中已经重点介绍了各种边缘检测算子,因此这次笔者将结合一些较为简单的形态学算法,使用Matlab为大家介绍一个很有意思的测量目标尺寸的小项目,效果如下

82dc8c78771048c340765d67602e1aee.png
图1 效果图

1.测距原理

在数字图像处理当中我们可知,在计算机眼中,每一张图片都实际上表现为一个庞大的矩阵,若在不知道测距物体距离的情况下,是不可能对图像中物体进行大小(size)的测量计算的,因此我们需要引入一个和比例尺类似的概念:pixels per metric ratio

意为给定度量单位的像素比率,在本篇文章中我们将给点度量单位设定为英寸(inch),可以理解为参考物的作用`,给定图像中一参考物大小,便可测得其它目标物体的尺寸大小

其中,参考物需要有两个重要性质:

性质1:参考物尺寸

我们应该知道物体的尺寸(就是宽或高)包括测量的单位(如mm、英寸等)

性质2:易于识别

我们应该能够很容易地在图片中找到参照物体,无论是基于物体的位置(例如,参考物体总是放在图片的左上角)还是通过外观(例如,独特的颜色或形状,不同与图片中的其他物体)。无论是哪种情况,我们的参照物都应该以某种方式具有唯一的可识别性。

在本篇文章中,我们将硬币作为我们的参考物,已知其尺寸大小为1 inch*1 inch,并且为满足性质2,我们确保其始终置于图像最左侧

6cca1f9db3e90842290248969f81db79.png
图2 测距原理

因此我们得到给定度量单位像素比例计算公式:

pixels per metric ratio = 硬币像素数/物体实际尺寸

已知硬币长宽均为1英寸,假设其在图像中像素宽为157px(基于其关联的检测框),得:

pixels per metric ratio = 157px/1.000in = 157px/in

通过使用这一比例,我们便可计算图像中其它物体的尺寸大小信息了

2.利用计算机视觉测量物体的大小

现在我们理解了pixels per metric ratio比率的含义,但我们还需要对目标进行检测进行检测框长宽的提取,这一步我们将用到诸如灰度图变换、边缘检测、形态学等算法

首先我们定义硬币长宽,并且读取原始图像

coin_width=1.000;
coin_height=1.000;
I=imread('pathtoyourimage');
figure(1),imshow(I);title('原始图像');

1c0829e9e9e0842a278a2e58956bc67e.png
图3 原始图像

之后我们使用rgb2gray(image)函数进行灰度图转换,并且通过imfilter(f, w,boundary_options)函数对图像进行高斯滤波,其中w为滤波器,由fspecial(type,parameters,sigma)生成,其中将type设为"gaussian",sigma设为1,代码及效果如下

%转换为灰度图像
I1=rgb2gray(I);
%figure(2);imshow(I1);title('灰度图像');
sigma = 1;
gausFilter=fspecial('gaussian',[5 5],sigma);
I2= imfilter(I1, gausFilter, 'replicate');
figure(2);imshow(I2);title('高斯滤波后图像');

d7dbbd9d1c62b7f0d2656876048fc8be.png
图4 高斯图像

对高斯滤波后的图像进行Canny边缘检测,使用edge(I,method,threshold),,其中I为输入图像,method为指定算法,文章中使用"canny"进行边缘检测,而threshold为阈值,通常设为0.1,具体想了解各边缘检测算法详解请看这篇文章

Rustle:数字图像图像处理:边缘检测(Edge detection)​zhuanlan.zhihu.com
4b430e5821e8afab7f13352433220cf0.png
  • 107
    点赞
  • 193
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值