上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        工业场景中,很多时候图像是用来做测量的。虽然我们很希望载台是平的,摄像头是正对着拍摄物体的,但是运行时间长了总会出现各种各样的偏差,尤其是有电机振动的时候。那么这种情况下,就需要重新进行标定了。标定的方法和之前的畸变矫正一样,就是找一个标准的斑点治具,上面各个斑点之间的高度和宽度,都是可以转成对应的世界坐标。利用这个标准的器件,以及拍摄到的图像,就可以计算得到一个新的透视矩阵,这样对于其他获取到的像素点,就可以找到对应的世界坐标了。

1、创建项目和创建流程

        首先还是需要创建项目、创建流程,这是使用qmacvisual软件很重要的一步。

2、导入图像

        导入的图像一般就是拍摄到的斑点图。可以一次处理一个,也可以一次处理多个。导入的方法,就是利用【获取图像】插件来完成。

3、N点标定

        N点标定的插件的位置,位于【标定工具】下面。直接把它用鼠标拖到流程窗口即可。N点标定的基本做法就是,依次1-》9标定好各个圆点的中心位置,接着将这些数值和实际坐标放到一个表格里面,这样就可以获得一个透视计算矩阵,这是我们希望得到的最终结果。

        这里我们完成的主要是九点标定。有两个地方需要配置,第一个就是输入的图像,第二个是熟练掌握找圆工具。标定的顺序是按照如上图所示的顺序依次进行的,即从中心点开始,逆时针完成。

        找圆的话,这部分我们之前也提到过。一般也是两个步骤。第一部分,添加一个ROI对象,第二部分,对参数进行设置。这两部分都ok之后,单击获取圆心按钮,就可以在图像上看到效果,同时在左下角会输出一个圆心坐标,也就是圆心的像素坐标,这个数值记录下来。做好了这一个圆点之后,继续完成其他2、3、4、5、6、7、8、9点,记录他们的像素坐标。

        完成这些像素坐标之后,就可以开始标定设置了。所谓的标定设置,就是把像素坐标和世界坐标放在一起供后面的计算使用。注意,这里需要选择九点标定参数。最后,单击执行按钮,就可以在输出显示tab中获得我们想要的结果。

        如图所示,整个输出包含了透视矩阵中的参数(A/B/C/D/E/F)、x方向单像素的宽度、y方向单像素的宽度、基准点的世界坐标、基准点的物理坐标。

4、后续像素坐标转世界坐标

        有了上面的输出之后,实际上我们就可以通过这个透视矩阵计算像素坐标、世界坐标之间的映射关系了。这部分,其实【对位关系】里面的【线性计算】说的也是这个,但不知道什么原因,使用的时候一直报错。现在我们把对应的转换公式放在这里,有需求的同学可以直接用这个公式进行计算。比如,我们完全可以通过script进行计算,这也是非常合适的。

tPoint.x = static_cast<float>(A * pPoint.x + B * pPoint.y + C);
tPoint.y = static_cast<float>(D * pPoint.x + E * pPoint.y + F);

        其中pPoint代表了像素坐标,tPoint代表了世界坐标。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 08:38:05       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 08:38:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 08:38:05       4 阅读
  4. Python语言-面向对象

    2024-04-03 08:38:05       6 阅读

热门阅读

  1. Jenkins 自动化更新 Stable Diffusion 介绍

    2024-04-03 08:38:05       20 阅读
  2. maya移除节点 修改节点

    2024-04-03 08:38:05       28 阅读
  3. 上传.PDF文件转为.DOCX文件

    2024-04-03 08:38:05       23 阅读
  4. 音响或耳机音频处理常用的芯片

    2024-04-03 08:38:05       21 阅读
  5. 微信小程序中路由跳转方式

    2024-04-03 08:38:05       25 阅读
  6. Python网络爬虫(二):Requests库

    2024-04-03 08:38:05       18 阅读
  7. SQLAlchemy 的数据库引擎engine与连接对象Connection

    2024-04-03 08:38:05       21 阅读
  8. Knife4j配置使用笔记

    2024-04-03 08:38:05       21 阅读
  9. nodejs的express负载均衡

    2024-04-03 08:38:05       17 阅读
  10. 每天学习一个Linux命令之dpkg

    2024-04-03 08:38:05       23 阅读
  11. linux扩展正则表达式之+

    2024-04-03 08:38:05       20 阅读
  12. JVM中一次完整的 GC 流程

    2024-04-03 08:38:05       24 阅读