使用以下相机校准教程,我能够获得旋转矢量和平移矢量。https://docs.opencv.org/master/dc/dbb/tutorial_py_calibration.html
我得到了相机矩阵和旋转/平移矩阵之间的关系,但我不知道如何将这个旋转向量转化为旋转矩阵。
此外,我正在试图弄清楚如何获得投影矩阵,但我没有找到一个openCV函数来调用它。
你知道其中任何一点的方法吗?
谢谢你的帮助!
首先,相机模型的理论非常密集,但对于理解所有这些是必要的。如果你不习惯它,这里有一条维基百科路径,可以从相机和变换矩阵的基础上学习:
- 针孔相机型号
- 了解齐次坐标
- 变换矩阵和
- 三维旋转矩阵
- 3D投影(透视投影部分(
- 摄像头矩阵
关于OpenCV,有一个函数可以应用名为warpPerspective
的透视转换。
你也可以看看几何变换模块中的所有其他函数,它们也很有趣。
您正在寻找的OpenCV函数称为cv2.Rodrigues,可用于将旋转向量转换为旋转矩阵,反之亦然。或者,在Python中,您可以使用scipy.spatial.transform.Rrotation,例如:
from scipy.spatial.transform import Rotation
rvec = [1,2,3]
rotation_object = Rotation.from_rotvec(rvec)
rotation_matrix = rotation_object.as_matrix()