如何计算翻译矩阵?

时间:2019-04-19 12:52:25

标签: opencv image-processing computer-vision camera-calibration 3d-reconstruction

我有2D图像数据,其相机位置分别位于纬度和经度。我想将像素坐标转换为3D世界坐标。我可以访问固有的校准参数以及偏航,俯仰和横滚。使用偏航,俯仰和横滚,我可以得出旋转矩阵,但是我没有得到如何计算平移矩阵。当我在处理数据集时,我无法物理访问摄像机。请帮我导出翻译矩阵。

1 个答案:

答案 0 :(得分:0)

如果您没有相机相对于地面的高度(AGL或ASL),或者通过其他方法从图像解析比例(例如,通过在图像中识别已知物体),则完全无法执行大小,例如航空影像中的足球场。

假设您可以解决比例问题,那么下一个问题是您可以(或想要)对地形进行建模的精确度。首先,您可以使用标准的大地椭球体(例如WGS-84)。为了获得更高的精度(尤其是从较低高度拍摄的图像),您将需要使用DTM并将其注册到图像。无论哪种方式,这都是标准的反投影问题:您计算从相机中心到像素的光线,将其转换为世界坐标,然后与椭球或DTM相交。

有很多开源库可以帮助您使用各种语言(例如GeographicLib)

已编辑以添加建议:

在ECEF中表达您的相机位置。 考虑到相机旋转,也要在ECEF中变换来自相机的光线。您可以使用一个库(例如nVector

然后继续进行射线与椭球的相交,如this answer中所述。