5

我有一个蠕虫的二进制图像(斑点提取效果很好)。 我有兴趣在blowb(蠕虫)上安装中心线。多边形斑点(二值图像)的中心线

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

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

下面是一个示范:

enter image description here

回答

0

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

  • skeltonize二进制团块
  • 通过追踪像素线和分支点构建骨架的graph(无周期)
  • 获得从每个末端节点到所有其他末端节点的所有最短路径并取最长路径(大约是该blob的开始和结束)从一个末端节点(度数= 1)到另一末端节点的结果路径是蠕虫中线的近似值。

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

的骨架的图形

源代码
对这个问题的代码可以是在这里找到:https://github.com/gabyx/WormAnalysis(如果你使用它请明星)

+0

这看起来不错!你能和我一起分享你的Python笔记本吗?谢谢! – crazjo

+0

当然,我会在今晚发布一些东西,我已经准备好了,前一段时间...需要找到它... – Gabriel

+1

代码在这里:https://github.com/gabyx/WormAnalysis – Gabriel