问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深度学习如何用于测量图像中的尺寸

创作时间:
作者:
@小白创作中心

深度学习如何用于测量图像中的尺寸

引用
51CTO
1.
https://blog.51cto.com/u_12195/12970596

在数字图像处理领域,边缘检测和形态学是两项非常重要的技术。本文将结合简单的形态学算法,使用Matlab介绍一个测量图像中物体尺寸的小项目。通过引入"像素每度量单位比率"的概念,我们可以准确测量图像中物体的实际尺寸。


图1 效果图

1. 测距原理

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

这个比率的计算公式为:
pixels per metric ratio = 硬币像素数/物体实际尺寸

已知硬币长宽均为1英寸,假设其在图像中像素宽为157px,得:
pixels per metric ratio = 157px/1.000in = 157px/in

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

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

首先定义硬币的尺寸,并读取原始图像:

coin_width

图2 原始图像

对图像进行灰度转换和高斯滤波:

% 转换为灰度图像

图3 高斯图像

进行Canny边缘检测:

I3

图4 Canny边缘检测图像

通过孔洞填充去除内部纹理:

% 孔洞填充

图5 孔洞填充图像

提取外围边缘并去除小物体:

图6 提取外围边缘
图7 去除小物体

使用bwlabel函数标记目标,并计算最小外接矩形:

[  

计算像素每度量单位比率:

% 单位英寸像素点比例计算

绘制检测框并显示尺寸:

for  

最终效果:

图8 效果图

效果演示:

图9 效果演示
图10 效果演示

可能的误差原因

  1. 拍摄角度不是完美的90°俯视,导致尺寸扭曲
  2. 未使用相机的内参和外参进行校准,存在镜头畸变

代码实现

完整代码如下:

coin_width

辅助函数:

function  
function  
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号