点击上方“新机器视觉”,选择加"星标"或“置顶”

重磅干货,第一时间送达

转自:AI图像

用单个相机在指定平面上的尺寸测量

在HALCON中很容易从图像中获得在世界坐标中的非变形测量。一般情况下,如果相同的物体在同一时刻,在不同的空间位置下,用相机拍摄两个或更多的图像,才能完成这样的测量任务。这就是所谓的立体视觉方法。

在工业检测中,我们通常仅仅有一个可用的相机,时间的约束不允许我们去运用在立体图像上去找对应点这样昂贵的处理(所谓的立体匹配处理)。

然而,对于通过远心镜头和位于已知平面的物体获取的物体,其是有可能获得在世界坐标系统的测量的。例如,对于针孔相机,在一个拼接线上。这两个任务可以通过一条光线与平面的相互作用来很好的解决。

通过这样,是有可能完成对在一个平面的物体测量,甚至当平面相对于光轴是倾斜的时候。仅仅的先决条件是相机已经被标定。在HALCON中,标定过程是很容易。

最容易的方法去执行标定就是利用HALCON的标准标准版。你仅仅需要擦剂几张标定板的图像(如图1所示),这里,在图像上,标定板已经被直接放在了测量平面上。

图1: HALCON标定板

第一个例子

下面的程序展示了去标定相机,并利用标定结果去转换测量到3D世界坐标。

首先,我们制定标定的一般参数。

然后,标定板的图像被读取。借助算子find_calib_object,标定板被搜索,标志点的轮廓和中心被提取到,标定板的位姿被估计到。获取的信息被存储在标定的数据模型中。

现在,我们用算子calibrate_camera来执行实际的标定。

随后,我们可以访问标定结果,例如相机内参和在参考图像下标定板的位姿。

位姿被用来作为相机外参,例如在相机坐标中3D世界坐标系统的位姿。在例子中,世界坐标系统被定位在尺子上(见图2).为了抵消标定板的厚度,位姿通过一个对应的值而移动。

现在,我们执行了测量。为此,我们通过标定板,获得了一种没有遮挡尺子的额外图像:

借助相机的内参和外参,通过算子image_points_to_world_plane就可以将测量结果转换到3D世界坐标。

图2:在标定以后,尺子上的标记点被测量,借助标定结果,测量被转化到3D世界坐标中

 End 

声明:部分内容来源于网络,仅供读者学术交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

halcon 定位_HALCON高级篇:单个相机的尺寸测量相关推荐

  1. halcon相机标定助手_HALCON高级篇:单个相机的尺寸测量

    用单个相机在指定平面上的尺寸测量 在HALCON中很容易从图像中获得在世界坐标中的非变形测量.一般情况下,如果相同的物体在同一时刻,在不同的空间位置下,用相机拍摄两个或更多的图像,才能完成这样的测量任 ...

  2. halcon 旋转_HALCON高级篇:3D相机标定

    点击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自:微信公众号AI图像 创建标定数据模型 你可以用算子creat ...

  3. halcon 旋转_HALCON高级篇:3D相机标定(3/3)

    访问标定结果 算子calibrate_cameras的主要结果由相机内参和每一张图像标定板的位姿组成.算子将它们存储在标定数据模型中,可以用算子get_calib_data来访问它们. 相机外参并不能 ...

  4. halcon 旋转_HALCON高级篇:3D相机标定(2/3)

    在多位姿上观察标定物 标定的主要输入数据是所谓的观察.为此,标定物在不同的位姿被放置.对于每一个位姿,相机获取一张图像.在这张图像上,标定物的标志点被提取,还有他们的(像素)坐标,连同相机的索引,标定 ...

  5. halcon 旋转_HALCON高级篇:面阵相机模型及其坐标转换

    面扫相机 图1: 针孔相机的透视映射 图1展示了一个针孔相机产生的透视映射.世界点P通过镜头的光中心映射到图像面上的P',其距离光中心的距离为f(焦距).实际上,术语"焦距"不是很 ...

  6. HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量

    HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量 示例程序源码(加注释) 关于显示类函数解释 dev_update_var ('off') dev_update_off () ...

  7. Spark性能优化指南:高级篇

    前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为<Spark性能优化指南>的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问 ...

  8. Spark性能优化指南——高级篇

    继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为<Spark性能优化指南>的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题. ...

  9. 【建议收藏】2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(Android高级篇上)...

    前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~. A awesome android expert interview questions a ...

最新文章

  1. Java学习开发入门基础教程系列
  2. ThinkJs笔记琐碎
  3. Mysql中几种插入效率的实例对比
  4. 10个必会的 PyCharm 技巧,附高清大图
  5. 在非controllers中获取httpServletRequest
  6. php之简单的文件管理(基本功能
  7. 几款免费开源的企业管理软件
  8. android关机铃声代码,android系统添加关机铃声
  9. SetWindowsHookEx 全局钩子
  10. 解决IDEA报Unmapped Spring configuration files found.Please configure Spring facet
  11. java smtp.126.com_java开发_STMP邮箱客户端_发送邮件
  12. 计算机桌面堆,如何让你的电脑桌面看起来简洁、美观?
  13. linux蜂鸣器驱动指令,Linux 设备驱动简析—PC蜂鸣器驱动
  14. php 挂起一个请求一直执行,在后台运行进程挂起PHP pag
  15. 微信云开发——日记小程序
  16. 电信宽带连接不上无线可连接服务器,电信宽带连接为什么无线连接上宽带连接连不上...
  17. 《牛客刷题》sql错题集
  18. 一文说透安全沙箱技术
  19. ☀️光天化日学C语言☀️(07)- ASCII码 | 来,跟我念:阿斯克二马
  20. Word排版:页眉不能对应每章标题、页脚偶数页消失等问题

热门文章

  1. 【体验】朗读机器人是如何炼成的!带你体验TTS语音合成模块,B719语音合成模块效果测试...
  2. 【移动通信】移动通信基础
  3. 通过MATLAB将数据转化为mif文件,供Quartusii软件的ROM核读取调用
  4. 使用async await 封装 axios
  5. 通过rsync清除目录的shell脚本
  6. LVS实现web服务的负载均衡
  7. centOS6.7 /etc/profile
  8. git cherry-pick简介
  9. Osmocom-bb系统编译
  10. W600 PWM 捕获功能使用示例程序