根据校准的相机信息计算世界坐标

时间:2019-01-11 15:19:39

标签: unity3d camera-calibration raycasting projection-matrix camera-matrix

我想根据已校准相机的内在和外在信息来计算世界坐标。

因此,我给出了以下信息(基于此:https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html):

f_x和f_y:焦距(以像素为单位) c_x和c_y:主点的位置(图像中心) 相机拍摄的图像的宽度和高度(以像素为单位)。 (宽度:1920px,高度:1200px)

我知道相机在3D场景中的位置,也知道相机旋转的方向。

现在,我的Unity World中有一个Mesh,我想基于例如像素(x:1000,y:400)应用Raycast。然后,我需要基于此信息对原始/居中的相机方向进行旋转,以启动Raycast。然后,我要使用Unity场景中的命中位置来标记由相机拍摄的2D图像中显示的元素的位置。

让我们假设以下情况。

图片宽度:1920,图片高度:1200

摄像机的世界坐标为: X:11,32-Y:3,85-Z:9,06

相机旋转: X:12,55-Y:-111,81-Z:0,66

相机的焦距: f_x&f_y:1489,89

相机的主要点: c_x:962,96-c_y:620,58

要计算Raycasthit的新方向,需要计算图像坐标之间的eurlerAngles(1000、400)。

计算不应太复杂。但是我被困住了,肯定可以在这里使用一些帮助。

0 个答案:

没有答案