使用 OpenCV 进行相机校准:使用失真和平移矩阵
Camera Calibration with OpenCV: Using the distortion and rotation-translation matrix
我正在阅读以下文档:http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
我已经成功地校准了相机,获得了相机矩阵和畸变矩阵。
我有两个子问题:
1) 我不知道如何使用失真矩阵'r'?
2) 对于所有视图,我有旋转和平移向量,它们将对象点(在模型坐标 space 中给出)转换为图像点(在世界坐标 space 中给出) ).所以每张图片共有 6 个坐标(3 个旋转坐标,3 个平移坐标)。我如何利用这些信息来获得旋转平移矩阵?
如有任何帮助,我们将不胜感激。谢谢!
回答顺序:
1) "r" 是像素相对于畸变中心的半径。即:
r = sqrt((x - x_c)^2 + (y - y_c)^2)
其中 (x_c, y_c) 是非线性失真的中心(即图像中具有零非线性失真的点。这通常(并且近似地)与主体标识点,即相机焦轴与像平面的交点。主点坐标在相机内参数矩阵的第3列。
2) 使用Rodrigues's formula在旋转向量和旋转矩阵之间进行转换。
我正在阅读以下文档:http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
我已经成功地校准了相机,获得了相机矩阵和畸变矩阵。
我有两个子问题:
1) 我不知道如何使用失真矩阵'r'?
2) 对于所有视图,我有旋转和平移向量,它们将对象点(在模型坐标 space 中给出)转换为图像点(在世界坐标 space 中给出) ).所以每张图片共有 6 个坐标(3 个旋转坐标,3 个平移坐标)。我如何利用这些信息来获得旋转平移矩阵?
如有任何帮助,我们将不胜感激。谢谢!
回答顺序:
1) "r" 是像素相对于畸变中心的半径。即:
r = sqrt((x - x_c)^2 + (y - y_c)^2)
其中 (x_c, y_c) 是非线性失真的中心(即图像中具有零非线性失真的点。这通常(并且近似地)与主体标识点,即相机焦轴与像平面的交点。主点坐标在相机内参数矩阵的第3列。
2) 使用Rodrigues's formula在旋转向量和旋转矩阵之间进行转换。