2

http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#calibratecamera

我使用 cv::calibrateCamera 方法和 9*6 棋盘图案。现在我得到了每个模式对应的 rvecs 和 tvecs,有人可以解释一下 rvecs 和 tvecs 的格式吗?据我所知,每个都是 3*1 矩阵。并且 OpenCV 文档建议查看 Rodrigues 函数。

http://en.wikipedia.org/wiki/Rodrigues'_rotation_formula

就罗德里格斯而言,这是一种以角度θ围绕给定轴旋转矢量的方法。但为此我们需要四个值单元 Vector(ux,uy,uz) 和角度。但 openCV 似乎只使用 3 个值。

OpenCV 罗德里格斯文档参考以下链接http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#void Rodrigues(InputArray src, OutputArray dst, OutputArray jacobian)

表示它将把 3*1 矩阵转换为 3*3 旋转矩阵。这个矩阵和我们使用 3D 图形的矩阵一样吗?我可以将其转换为 4*4 矩阵并将其用于如下转换吗

M4X4 [

xxx 0

xxx 0

xxx 0

0 0 0 1

]

x :是罗德里格斯函数的输出 3by3 矩阵的值。关系是否有效:

Vout = M4X4 * Vin;使用上面的矩阵。

4

1 回答 1

1

3x1 旋转向量可以通过向量指向的方向定义旋转轴和向量大小定义角度来表示旋转矩阵。使用 opencv 函数Rodrigues(InputArray src, OutputArray dst),您可以获得适合您描述的函数的旋转矩阵。

于 2013-02-12T18:42:13.330 回答