我有许多图像,我知道焦距、像素数、尺寸和位置(来自 GPS)。它们都是以高度倾斜的方式,用市售的相机在地面上拍摄的。
计算图像中某些像素之间的欧几里德距离的最佳方法是什么?如果确实可以。
我有许多图像,我知道焦距、像素数、尺寸和位置(来自 GPS)。它们都是以高度倾斜的方式,用市售的相机在地面上拍摄的。
计算图像中某些像素之间的欧几里德距离的最佳方法是什么?如果确实可以。
假设您不是在寻找完整的景观建模而是一个简单的近似值,那么这应该不会太难。基本上,您的图像的第一个近似值简化为具有已知焦距的沿平面看的相机。因此,我们可以非常轻松地创建系统的 3D 模型——它与查看棋盘演示的经典观察者相差不远。
通常我们的图形问题是将 3D 模型投影到 2D 中,以便我们可以渲染图像。尽管现在大多数程序都使用 API(例如 OpenGL)来执行此操作,但方程式并不是特别复杂或难以理解。我使用Pascal 中的 3D Graphics中的示例编写了我的第一个代码, 这是一个很好的清晰论文,但是会有很多其他类似的来源(尽管现在可能更少,因为总是使用硬件 API)。
对此有用的是投影方程是可交换的,因为如果您在图像和模型上有一个点,您可以通过投影运行数据以检索原始 3D 坐标 - 这就是您想要做的。
因此有几种方法建议:要么直接编写代码来自己完成上述工作,要么可能更简单地使用 OpenGL(我建议为此使用GLUT 工具包)。如果您的数学很好并且操纵矩阵不会给您带来任何问题,那么我会推荐前者,因为解决方案会更紧凑并且很有趣 - 否则采用 OpenGL 方法。您可能也很早就想将相机/平面近似转换为相机/球体。
如果这不足以满足您的需求,那么理论上进行实际的景观建模是可行的。SRTM数据是免费提供的(尽管不是最友好的形式),因此结合您的 GPS 位置,应该可以创建一个网格模型,在其中应用与上述相同的算法。