我有一个校准过的相机(内在矩阵和失真系数),我想知道相机位置知道一些3d点及其在图像中的对应点(2d点).
我知道,cv::solvePnP能帮助我,看完这个和这个我明白solvePnP的,我的产出rvec和tvec是对象在相机的旋转和平移坐标系.
所以我需要找出世界坐标系中的摄像机旋转/平移.
从上面的链接看来,代码在python中是直截了当的:
found,rvec,tvec = cv2.solvePnP(object_3d_points, object_2d_points, camera_matrix, dist_coefs)
rotM = cv2.Rodrigues(rvec)[0]
cameraPosition = -np.matrix(rotM).T * np.matrix(tvec)
Run Code Online (Sandbox Code Playgroud)
我不知道python/numpy东西(我正在使用C++),但这对我来说没有多大意义:
glTranslatef和glRotate调用?