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

时间:2016-06-14 19:33:42

标签: python polygon computational-geometry curve-fitting voronoi

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

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

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

这是一个演示:

enter image description here

1 个答案:

答案 0 :(得分:3)

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

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

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

骨架图

源代码
可以在此处找到此问题的代码:https://github.com/gabyx/WormAnalysis(如果您使用它,请为其加注星标)