centerline of a polygonal blob (binary image)

别等时光非礼了梦想. 提交于 2019-12-04 21:00:32

问题


I have a binary image of a worm (blob extraction which works well). I am interested in fitting a centerline on the blowb (worm).

So far I came up with this: starting from a polygon (after outline extraction of blob in the image) I applied a voronoi computation and discarded all vertices which are outside of the polygon (blue) which gave me the black center line which I can further use to fit a smooth centerline.

However, this computation is not at all robust (due removing voronoi vertices not inside the polygon?) Does somebody know an algorithmic workflow to get the centerline of a polygon or the center line of a blob object (binary image). (skeletonization?, triangulation of polygon an using midpoints of inside edges)

Here is a demonstration:


回答1:


I have found a better solution:

  • skeltonize the binary blob
  • build the graph (without cycles) of the skeleton by tracing pixel lines and branch points
  • get all shortest paths from each end node to all other end nodes and take the longest one (approximately the start and end of the blob)
  • the resulting path from one end node (degree=1) to another end node is an approximation of the worm middle line.

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

Source Code:
The code to this question can be found here: https://github.com/gabyx/WormAnalysis (if you use it please star it)



来源:https://stackoverflow.com/questions/37820629/centerline-of-a-polygonal-blob-binary-image

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!