相机校准和从3D到2D图像的点投影

问题描述

我正在尝试将3D点从点云投影到2D全景图像。我已经在2D图像上手动选择了8个点以及相应的3D点云点,并使用OpenCV库查找了相机矩阵,平移和旋转矢量,然后将其用于投影方法

#initial camera matrix
camera_matrix = cv2.initCameraMatrix2D([objectPoints_3D],[imagePoints_2D],image_size_2D)

#calibrate cameras
intrinsics_error,intrinsic_matrix,intrinsics_distortion_coeffs,rotation_vectors,translation_vectors = cv2.calibrateCamera([objectPoints_3D],image_size_2D,camera_matrix,None,flags=cv2.CALIB_USE_INTRINSIC_GUESS) #camera_matrix and intrinsic_matrix are the same

#project a 3D point in the pointcloud onto a 2D image
projected_point_2D = cv2.projectPoints(selected_point_3D,rotation_vectors[0],translation_vectors[0],intrinsics_distortion_coeffs)

projected_point_2D对于校准时使用的同一图像似乎是合理的,但是在另一组2D和3D图像中却失败了。我做错了吗?

图像包含建筑物和树木

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)