多边形blob的中心线(二进制图像)

Gab*_*iel 7 python voronoi polygon curve-fitting computational-geometry

我有一个蠕虫的二进制图像(blob提取效果很好).我有兴趣在吹气(蠕虫)上安装中心线.

到目前为止我想出了这个:从多边形开始(在图像中轮廓提取blob之后)我应用了voronoi计算并丢弃了多边形之外的所有顶点(蓝色),这给了我黑色的中心线,我可以进一步用于适合平滑的中心线.

然而,这个计算并不是完全可靠的(因为去除不在多边形内部的voronoi顶点?)是否有人知道算法工作流程以获取多边形的中心线或blob对象的中心线(二进制图像).(骨架化?,使用内边缘的中点对多边形进行三角剖分)

这是一个演示:

在此输入图像描述

Gab*_*iel 6

我找到了更好的解决方案:

  • 骨架化二进制 blob
  • 通过追踪像素线和分支点构建骨架图(无循环)
  • 获取从每个端节点到所有其他端节点的所有最短路径,并取最长的一条(大约是 blob 的开头和结尾)
  • 从一个端节点(度=1)到另一端节点的最终路径是蠕虫中线的近似值。

如果有人对这个解决方案感兴趣,我可能会分享一个 python 笔记本。 最终结果:绿色=最终中线图,深绿色=最终中线

骨架图

源代码
这个问题的代码可以在这里找到: https: //github.com/gabyx/WormAnalysis(如果您使用它,请给它加星标)