视觉测量工件尺寸

简介: 视觉测量工件尺寸

 现需要使用工业摄像头对非标物体进行尺寸测量,在本文中我们将使用其他标注物进行替代。实验器材如下所示:


  1. 摄像头一个


  1. 待测物体


  1. 标准尺



需求分解


  考虑到相机拍摄图像畸变,我们不妨设想一下:我们不进行畸变矫正,所有的检测都是建立在“畸变”后测量的数据,那么在进行计算的话,数据也是经过“畸变”后处理的数据了。这里我们可以参考地图的绘制中的“比例尺”,借用比例尺的思想进行工件的尺寸测量。


  这里我们简化一下,在白纸上使用签字笔绘制一条线段替代被测物,使用摄像头拍摄后计算长度。这里我们可以简化一下模型:


            待测物实体尺寸 = K · 待测物像素尺寸

            K = 待测物实体尺寸  / 待测物像素尺寸


  实验步骤:


  1. 准备好标准工件;


  1. 固定角度拍摄标准工件


  1. 分别测量标准工件尺寸与图像中的像素尺寸


  1. 应用上述公式得到比例系数:K


  1. 采集新数据使用比例系数和像素尺寸进行计算实体尺寸




代码设计


  这里我们需要注意的一个地方是计算比例系数时候图像的大小与后续测量工件尺寸需保持一致。


计算图像尺寸代码:


  这里我们可以得到图像的像素尺寸,使用方法为点击线段的两个端点即可获取两端点的图像坐标,进一步可以计算出自己的K值。


import cv2
img = cv2.imread('test.jpg')
def mouse_click(event, x, y, flags, para):
    if event == cv2.EVENT_LBUTTONDOWN:  # 左边鼠标点击
        print('PIX:', x, y)
if __name__ == '__main__':
    cv2.namedWindow("img")
    cv2.setMouseCallback("img", mouse_click)
    while True:
        cv2.imshow('img', img)
        if cv2.waitKey() == ord('q'):
            break
    cv2.destroyAllWindows()
复制代码




使用K值计算新待测物的标准尺寸


  这里的X1,X2,Y1,Y2分别使用上述的计算图像尺寸的代码计算得到,使用勾股定理可以得到线段的长度(这里以直线段做例子)


import math
x1, y1 = (386, 170)
x2, y2 = (552, 227)
num = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)
L = math.sqrt(num)
print("像素尺寸", L)
S = L/(41.667)  # 替换成自己计算的K值
print("实体尺寸", S)



相关文章
|
19天前
|
传感器 编解码 数据可视化
​2013-至今激光雷达点云树冠顶部距裸露地面的高度(树冠高度模型;CHM)1m分辨率
该数据集由NEON提供,涵盖2013年至今的激光雷达点云树冠高度模型(CHM),分辨率为1米。CHM通过处理激光雷达点云生成,区分地面和植被点,计算树冠相对于裸露地面的高度。树冠高度小于2米的部分设为零。数据适用于生态研究,支持科学分析与数据汇总,采用CC0 1.0协议公开发布。 代码示例展示了如何使用Google Earth Engine读取并可视化特定区域的CHM数据,适用于树冠高度分析。
47 22
|
机器学习/深度学习
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
|
9月前
|
编解码 索引
LabVIEW使用正交编码器进行角位置测量
LabVIEW使用正交编码器进行角位置测量
116 1
|
机器学习/深度学习 传感器 算法
【图像误差测量】测量 2 张图像之间的差异,并测量图像质量(Matlab代码实现)
【图像误差测量】测量 2 张图像之间的差异,并测量图像质量(Matlab代码实现)
|
算法 数据安全/隐私保护 计算机视觉
定量分析图像渲染质量
通常都是由人眼来主观判断图像的质量高低,能否通过数学度量对判定图像的质量呢?比如通过图片的像素/亮度/边缘数量来判断图像是清晰还是模糊
400 0
|
存储 数据可视化 数据管理
处理RGB-D图像数据以构建室内环境地图并估计相机的轨迹
视觉同步定位和映射 (vSLAM) 是指计算摄像机相对于周围环境的位置和方向,同时映射环境的过程。 您可以使用单眼摄像头执行 vSLAM。但是,深度无法准确计算,估计的轨迹未知,并且随着时间的推移而漂移。要生成无法从第一帧开始三角测量的初始地图,必须使用单眼相机的多个视图。更好、更可靠的解决方案是使用 RGB-D 相机,它由一个 RGB 彩色图像和一个深度图像组成。
213 0
|
传感器 存储 算法
使用车载激光雷达数据在惯性测量单元读数帮助下构建地图
处理来自安装在车辆上的传感器的 3-D 激光雷达数据,以便在惯性测量单元 (IMU) 读数的帮助下逐步构建地图。这样的地图可以促进车辆导航的路径规划,也可以用于定位。
127 0
|
算法
m通过目标形心提取、颜色模型以及边缘提取实现两个相向移动人员交叉遮挡过程的检测和分割matlab仿真
m通过目标形心提取、颜色模型以及边缘提取实现两个相向移动人员交叉遮挡过程的检测和分割matlab仿真
141 0
|
机器学习/深度学习 编解码 人工智能
首篇BEV感知生成工作!BEVGen:从鸟瞰图布局生成环视街景图像
本文提出了BEVGen,这是一个条件生成式模型,它合成了一组真实且空间一致的环视图像,这些图像与交通场景的BEV布局相匹配。BEVGen结合了一种新颖的交叉视图转换和空间注意力设计,学习相机和地图视图之间的关系,以确保它们的一致性。BEVGen可以精确地渲染道路和车道线,以及在不同的天气条件和时间生成交通场景。
首篇BEV感知生成工作!BEVGen:从鸟瞰图布局生成环视街景图像
利用相机焦距进行物体尺寸测量
利用相机焦距进行物体尺寸测量
1338 0
利用相机焦距进行物体尺寸测量