基于网格的线路优化

时间:2013-03-05 02:24:05

标签: algorithm optimization line tracing polyline

将基于网格的点云(如第一张图像)优化为类似于第二张图像的最佳方法是什么? Grid-Based Closed Pointcloud

2 个答案:

答案 0 :(得分:0)

我建议您使用所谓的Simplify例程来执行此操作。就个人而言,我会推荐R-D-P line simplification algorithm。有许多实现可用作示例代码,或者在开源和闭源应用程序中都可用。您可以从维基百科上的pseduocode编写自己的。与Wiki页面链接的是this implementation in javascript,其中包含example of its use。如果您使用任何计算几何库或GIS库,它几乎肯定包含在其中。

答案 1 :(得分:0)

我尝试用“右手在墙上”算法跟踪边缘来编写代码。这个算法不仅会产生坐标对,而且会产生一个连接/闭环,可以表示为一个字符串:“URUURUURUURRDDRDDDRDD”......如Up,Right,Down,......最后是Left,Up,..等等。

接下来会找到边缘点。例如,必须是所有Ups和Downs之间以及每个Left和Right之间的一些边缘点:哪个像素/点距离(U)RUURUURUUR_RDDRDDDDRD(D)之间绘制的线最远?我的候选人在'_'附近;

选择类似的技术,现在可以在(U)RUURUURUUR(_)之间绘制一条虚线,并检查所有中间坐标是否都是该行的1/2像素;如果没有,继续细分点距离线最远的地方。