我正试图从3D数字高程模型(DEM)导出的3D图像上寻找一个跟随脊的算法(或算法思路)。我已经设法获得非常基本的程序工作,它只是遍历图像的每一行,标记一条脊线,无论它在哪方面发现很大的变化(即从180度到180度都从<)。在3D图像上跟踪脊的路径的算法
但是,这种产生的线条并不精彩,经常会有间隙和各种奇怪的人工制品。我希望通过使用某种算法来追踪脊线来尝试并扩展它,从而生成完整的线(即没有间隙)并且更精确。
许多人都提到蛇算法,但他们似乎并不完全符合我的要求。我还做了很多关于路径寻找算法的搜索,但是它们似乎并不是很正确。
有没有人有任何建议的类型或算法或特定的算法,我应该看看?
更新:我被要求添加一些更详细的信息,我将会应用到这个确切的区域。它正在处理沙丘网格高程数据。如果这些沙丘看起来类似于流域盆地之间的界限,但我可能会更加复杂(例如,可能有多个沙丘彼此非常接近并且逐渐合并成波峰),我试图提取波峰
您对于您的要求或您的应用程序的要求并不十分清楚。如果将排水盆定义为“挑战徒步旅行路线”,您的需求将会不同。 你对脊的定义是什么? (这是由您的应用程序驱动的。) 根据您对岭的定义,我们可以开始识别适当的算法。 – John 2010-11-11 17:54:30
谢谢。我编辑了这个问题来详细说明一下。 – robintw 2010-11-11 18:32:07
Nav的回复大部分都是正确的。通过提取曲面的曲率,然后查看最大曲率,可以轻松找到脊。下面是一个示例代码http://www.mathworks.com/matlabcentral/fileexchange/11168-surface-curvature。 – twerdster 2011-01-10 16:54:40