【发布时间】:2018-01-09 06:40:08
【问题描述】:
我有一个带有 6 个 aruco 标记的立方体,并试图在世界坐标中找到立方体的中心。基本上需要将 aruco 标记中心的已知点向下移动到垂直于标记面的立方体长度的一半。
在汽车游戏中,这类似于根据其速度和前进方向找到下一个位置。
我不确定如何在 rvec 的相反方向上将点转换给定距离。我在世界坐标中的 3D 位置之后,所以这个没有太大帮助。
这是我目前基于projectPoints() implementation的内容
Matx33d R;
Rodrigues(rvecs[i], R);
Affine3d aff(rvecs[i], tvecs[i]);
Vec3d move_along_z(0, 0, 0.5f);
Vec3d new_point = aff*move_along_z; // ??
【问题讨论】:
-
您的链接指向 OpenCV 中的鱼眼模块...不确定您是否是这个意思。据我了解,您应该执行以下操作:找到 aruco 标记,获取 3D 姿势,然后垂直于标记移动(取决于您的坐标系)并获得中心...看看this tutorial据我在教程中看到的,你必须移动 -0.5。它是
move_along_z * aff,因为您向标记的中心移动,然后对其应用额外的移位。尝试并绘制它:)