将基于网格的点云(如第一张图像)优化为类似于第二张图像的最佳方法是什么?
答案 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像素;如果没有,继续细分点距离线最远的地方。