我希望使用OpenCV估算已知3D物体的姿态。如果给出了3D模型的点及其在图像上对应的点,则可以使用solvePnP。我的问题是:如何找到已知3D模型与其在图像上的投影之间的对应关系? 非常感谢。
我希望使用OpenCV估算已知3D物体的姿态。如果给出了3D模型的点及其在图像上对应的点,则可以使用solvePnP。我的问题是:如何找到已知3D模型与其在图像上的投影之间的对应关系? 非常感谢。
当您在3D模型和场景中有一些点的匹配时,您需要应用cv::findHomography()函数。该函数计算一个矩阵,将3D模型中的任何点投影到场景中。实际上,只需要4个匹配项就可以进行单应性计算。
poseMatrix = solvePnP(objectPoints, imagePoints);
计算出图像点坐标 = objectPoints[i] * poseMatrix * cameraMatrix
查找满足条件的j值
当且仅当imagePoints[j] ~= 图像点坐标时,
objectPoints[j] 和 imagePoints[i] 才是对应的点。