寻找算法:光栅图像的骨架生成

Ist*_*tel 5 algorithm geometry raster

我正在做一些工作(太复杂无法解释),我的任务之一是我需要将平滑多边形的光栅图像转换为骨架.所以我需要做这样的事情: 图01

我有光栅图像(在左侧),我想要一个由表示图像的点和边(右侧)组成的图形.

我读过算法,特别是Steven Skiena的一本书,他告诉我使用"刷火"算法,他解释为"每个循环,遍历边缘的每个点,对于碰撞的边缘添加一个点到骨架并删除剩余的点,继续下一个循环,直到只剩下骨架"但我在网上找到的所有信息都是关于机器人的一些寻路算法,我不明白如何在这里应用它(基本上如果我只有填充/空白像素的坐标,我怎么知道"边缘".

我已经查找了CGAL库和它的骨架演示,但是当多边形有很多顶点时,它不能很好地完成,所以只需将边框上的每个顶点转换为多边形的顶点,然后将其提供给算法就不会产生效果很好.

我希望这必须是一个常见的算法,因为任务似乎是非常基本的,但我不想发明轮子,我找不到任何关于这个主题(也许是因为我不知道正确的关键字)

Jos*_*rke 3

更适合您搜索的术语是数字细化,即中轴的数字版本。例如,本文引用了 15 个这样的算法:

“关于十五种二维并行细化算法的注释。” M. Couprie(PDF 下载链接

下面是图 16 的一小部分,显示了两种此类算法的结果:
图16