早上好
我正在使用OpenNI2 + NiTe2骨架跟踪器和2个xtion摄像机。我需要将两个摄像机之间的关节位置设置在相同的坐标系中,并且这个新参考系统的原点必须在精确的位置(或多或少),所以我尝试使用Aruco进行操作。
现在,我使用cv::aruco::estimatePoseSingleMarkers
和cv::Rodrigues(rvec,R);
从aruco获得rvec tvec并创建转换矩阵A。
然后,在执行跟踪时,我以这种方式变换每个关节:
R_ = MatrixXd(4, 4);
R_ << -1, 0, 0, -0.025,
0, -1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1; //from RGB (Aruco) to DEPTH (joint)
R_ = (A.inverse()) * R_;
p1 = R_ * p0; //p0 original joint coordinates
如果我是对的,就可以通过这种方式将摄像机坐标系中的每个关节都转换为aruco上的关节。
我对两台摄像机都这样做(每台摄像机都有其固有的参数和aruco变换),但是新的联合坐标不会像他们应该的那样重叠。
有什么主意吗?
谢谢。