我认为这是基本的三角学任务,但我的三角学不太好。我已经校准了相机,所以我知道相机矩阵和失真系数。我还能够检测 aruco 板(使用 opencv 的 aruco contrib 模块)及其位置,因此我有板的旋转矢量和平移矢量(在相机空间中?)。所以我还可以使用相对于棋盘的坐标定义围绕棋盘中心的黄色圆圈,并使用函数cv::projectPoints (yellowMarkerPoints, rvec, tvec, camMatrix, distCoeffs, imagePoints) 绘制它们;和 cv::circle。现在我需要计算离相机最近的圆。我不明白该怎么做!
所以我有什么:
Mat camMatrix, distCoeffs;
Vec3d rvec, tvec;//board pose
vector< Point3f > yellowMarkerPoints;//yellow circles positions
或类似的问题:如何从这些数据中获得板相对于相机的角度(又名“偏航”旋转角度)?