提示:若没有查找的算子,可以评论区留言,会尽快更新
Halcon应用:九点标定-手眼标定
- 前言
- 一、Halcon应用?
- 二、应用实战
- 1、图形理解[eye-to-hand]:
- 1.1、开始应用
- 2 图形理解[eye-in-hand]
前言
本篇博文主要用于记录学习Halcon中算子的应用场景,及其使用代码和图像展示。只讲通俗易懂使用方法,不讲原理,不讲原理,不讲原理,重要的事情说三遍。
九点标定-手眼标定:想象一下,人眼睛看到一个东西的时候要让手去抓取,就会控制手到物体旁边,可是眼睛看到的位置和手的位置所处的不一样,这就需要知道眼镜和手的坐标关系。如果把大脑比作中间人,把眼睛比作A,把手比作C,如果A和中间人的关系知道,中间人和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就清晰了。
提示:以下是本篇文章正文内容,下面案例可供参考,注意参数坐标的使用,能帮助你理解算子
一、Halcon应用?
Halcon 是一个强大的图像处理工具,该工具是为了解决机器视觉项目任务而创建的。
二、应用实战
1、图形理解[eye-to-hand]:
眼在手外:站在相机角度看到的三角形物体,与站在机械臂角度看到的物体可能会有所差异,比如:
视角差异图
大家看到这个脑海中是否会出现之前的一个应用:仿射变换,没错,就是用到仿射变换,将相机视角的图变化到机械臂视角,经过平移和放缩,旋转。
1.1、开始应用
我们可以采用九点标定板进行标定,在相机视角下,通过halcon将每一个点的图像坐标获取到,采用一一对应的方式,获得对应机械臂坐标下的各个点的机械坐标,这样就分别获得两组坐标,分别是相机视角下的坐标[Qx, Qy],一个是机械视角下的坐标[Rx, Ry]。
*假定已经获得图像坐标下的九点位置
column_img := [50,150,200,50,150,200,50,150,200]
row_img := [20,20,20,70,70,70,120,120,120]
*分别获得机械坐标下的九个点位置
column_robot :=[275,225,170,280,230,180,295,240,190]
row_robot := [55,50,45,5,0,-5,-50,-50,-50]*利用该算子构建变换矩阵
vector_to_hom_mat2d (row_img, column_img, row_robot, column_robot, HomMat2D)
* 获得需要知道的图像坐标下的某点(Qx, Qy)的机械坐标(Rx, Ry)
affine_trans_point_2d (HomMat2D, Qx, Qy, Rx, Ry)
* 标定完成
2 图形理解[eye-in-hand]
眼在手中:相机固定在机械手上面,这种情况的标定过程实际上和相机和机械手分离的标定方法是一样的,随着机械臂带着相机移动,相机视野中的三角形区域会发生变化,某些情况下只能三角形的一个角区域。