我正在做一些工作(解释起来太复杂了),我的任务之一是我需要将平滑多边形的光栅图像转换为骨架。所以我需要做这样的事情:
我有光栅图像(在左侧),我想要一个由点和边(在右侧)组成的图形来表示图像。
我读过算法,尤其是 Steven Skiena 的一本书,他告诉使用“刷火”算法,他将其解释为“每个循环,通过边缘上的每个点,对于碰撞的边缘添加一个点到骨架并删除剩余的点,继续下一个循环,直到只剩下骨架”但是我可以在网上找到的关于这个算法的所有信息都是关于机器人的一些寻路算法,我不明白如何在这里应用它(基本上如果我只有填充/空白像素的坐标,我怎么知道“边缘”)。
我查看了 CGAL 库和它的骨架演示,但是当多边形有很多顶点时效果不佳,因此只需将边界上的每个顶点转换为多边形的顶点,然后将其提供给算法不会产生好结果。
我希望这一定是一个通用算法,因为任务似乎很基本,但我不想发明轮子,我找不到任何关于该主题的内容(可能是因为我不知道正确的关键字)