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