我有一个蠕虫的二进制图像(斑点提取效果很好)。
我有兴趣在斑点(蠕虫)上拟合中心线。
到目前为止,我想出了这个:从多边形开始(在图像中提取斑点的轮廓之后),我应用了 voronoi 计算并丢弃了多边形(蓝色)之外的所有顶点,这给了我可以的黑色中心线进一步用于拟合平滑的中心线。
然而,这种计算一点也不稳健(由于删除了不在多边形内部的 voronoi 顶点?)有人知道获取多边形中心线或斑点对象(二进制图像)中心线的算法工作流程吗? (骨架化?,使用内部边缘的中点对多边形进行三角剖分)
这是一个演示:
我找到了更好的解决方案:
-
骨架化 http://scikit-image.org/docs/dev/api/skimage.morphology.html#medial-axis二进制斑点
- 建立graph https://networkx.github.io/通过追踪像素线和分支点来绘制骨架(无循环)
- 获取从每个端节点到所有其他端节点的所有最短路径,并取最长的一条(大约是 blob 的开头和结尾)
- 从一个端节点(度=1)到另一端节点的最终路径是蠕虫中线的近似值。
If someone is interested in the solution, I may share a python notebook.
end result: green= final midline graph, dark green=final midline
the graph of the skelton
源代码:
这个问题的代码可以在这里找到:https://github.com/gabyx/WormAnalysis https://github.com/gabyx/WormAnalysis(如果你用过请加星标)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)