OpenCV项目3D坐标到2d摄像机坐标

bla*_*ack 5 c++ 3d camera opencv

我有一个物体的3D世界坐标,我想在相机2D平面上得到它的坐标.我已经使用了相机校准cv::calibrateCamera,因此我有相机矩阵distortionCoeffs.

为了将3D点投影到2D摄像机坐标,我使用cv::projectPoints.文件说:

void projectPoints(InputArray objectPoints,InputArray rvec,InputArray tvec,InputArray cameraMatrix,InputArray distCoeffs,OutputArray imagePoints,OutputArray jacobian = noArray(),double aspectRatio = 0)

我如何获得rvec/tvec并且我的方法是正确的?calibrateCamera给我rvecstvecs,但他们每个输入棋盘的图像,我想,他们是相机的旋转和棋盘的翻译,而不是.

bla*_*ack 3

由于我有投影矩阵( ),我可以从 3D 坐标(使用齐次坐标P)计算相机平面中的 2D 坐标 ( ) :xX

x (u,v,w) = P * X (x1,x2,x3,w)

我只是在校正方面遇到问题,因此我无法获得二维图像的精确投影。请参阅此处:OpenCV 立体视觉 3D 坐标到 2D 相机平面投影不同于将 2D 点三角测量到 3D