视觉测量工件尺寸

简介: 视觉测量工件尺寸

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


  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)



相关文章
|
5月前
|
人工智能 Serverless API
Serverless 加 AI 让应用开发更简单
本文介绍了 Serverless 技术在 AI 领域的应用及 FunctionAI 平台的功能与优势。首先探讨了 Serverless 解决的核心问题,包括降低成本和提升效率。接着分析了构建 AI 应用的阻碍因素,如技术积累不足、大模型迭代快及算力资源有限。FunctionAI 平台通过按需模型托管、一键部署、流程式开发工具和灵活组装能力,帮助企业降低试错成本并提高开发效率。平台架构分为四层,涵盖模型层、开发层、服务层和部署层。实际应用场景包括图像生成、外部开发者支持及大流量处理等。最后,通过客户案例展示了平台在弹性扩展与成本优化方面的价值。
|
网络协议 安全 算法
"网络世界的守护者:一探究竟TCP协议如何确保数据传输的绝对安全与可靠"
【8月更文挑战第20天】传输控制协议(TCP)是网络通信中的核心协议之一,它确保数据包能可靠、有序地从源头传输到目的地。TCP采用三次握手的方式建立连接,并通过序列号、确认应答及超时重传来保障数据传输的准确性。此外,TCP还具备流量控制与拥塞控制功能,避免网络拥塞。虽然TCP在可靠性上表现优异,但在快速传输场景中可能存在局限。深入理解TCP对于网络工程师和开发者至关重要。
400 1
|
11月前
|
编解码 算法 数据挖掘
WoodYOLO:用于木材种类鉴定的YOLO改进版
【论文解读】WoodYOLO通过木材的显微图像发现木材的特征,可用于木材种类鉴定,性能优于通用的YOLO
222 7
|
文字识别 算法 计算机视觉
图像处理之Zhang Suen细化算法
图像处理之Zhang Suen细化算法
659 0
|
存储 SQL 测试技术
Flink⼤状态作业调优实践指南:状态报错与启停慢篇
本文整理自俞航翔、陈婧敏、黄鹏程老师所撰写的大状态作业调优实践指南。由于内容丰富,本文分享终篇状态报错与启停慢篇.
50718 65
Flink⼤状态作业调优实践指南:状态报错与启停慢篇
|
算法 数据可视化 机器人
使用Python进行二维图像的三维重建
2D图像的三维重建是从一组2D图像中创建对象或场景的三维模型的过程。这个技术广泛应用于计算机视觉、机器人技术和虚拟现实等领域。 在本文中,我们将解释如何使用Python执行从2D图像到三维重建的过程。我们将使用TempleRing数据集作为示例,逐步演示这个过程。该数据集包含了在对象周围的一个环上采样的阿格里真托(Agrigento)“Dioskouroi神庙”复制品的47个视图。
利用相机焦距进行物体尺寸测量
利用相机焦距进行物体尺寸测量
1800 0
利用相机焦距进行物体尺寸测量
|
存储 搜索推荐 数据库
如何选择合适的矢量数据库:选型指南与案例分析
【4月更文挑战第30天】面对众多矢量数据库,如何选择合适的?本文提供了一份选型指南和案例分析。首先,明确业务需求,如推荐系统、图像检索等场景的不同需求;其次,评估数据量,大型项目需选择支持分布式架构的数据库;再者,关注查询性能、技术成熟度和成本。案例中,电商企业选用Faiss实现高效推荐,而互联网公司则因大规模图像检索选择了Milvus,后者以其扩展性和准确性脱颖而出。选择矢量数据库需综合考虑,结合实际以找到最佳匹配。
Halcon&测量] 模糊测量
Halcon&测量] 模糊测量
294 0