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