3

Would you know any existing code to extract the center curve of a mesh or a point cloud? The center curve of a mesh is equidistant to its boundaries.

I looked at several questions/answers posted already such as this one on a planar polygon but could not find one that explains results in 3D such as the one shown in this paper and this one on "point cloud skeletonization through Laplacian-Based Contraction" where this quadratic equation comes back in both.

There is also the approach described in this paper on 3D Mesh Skeleton Extraction using prominent Segmentation based on "connecting rings".

So far the closest i got to making it work is the Skeletonize3D plugin for ImageJ but I could not make it works for an .obj mesh yet.

Community
  • 1
  • 1
Arthur Mamou-Mani
  • 2,303
  • 10
  • 43
  • 69
  • 1
    Is this what you're looking for? ["Cocone Software for surface reconstruction and medial axis"](http://www.cse.ohio-state.edu/~tamaldey/cocone.html) - "_In addition to the surface, Tight Cocone below can compute an approximate medial axis or MAT of the object._" – bobobobo May 19 '12 at 19:15
  • Thank you @bobobobo but it only gives a [mesh](http://www.cse.ohio-state.edu/~tamaldey/medialaxis_pointcloud.htm) as an output when I need a curve. – Arthur Mamou-Mani May 19 '12 at 21:17
  • 1
    You want to reduce a point cloud in 3D to a single curve, correct? What properties do you want the curve to satisfy? There is not a unique such curve, so I think you need to specify in more detail what it is you seek. – Joseph O'Rourke May 20 '12 at 01:35
  • Thank you @JosephO'Rourke, this is correct. The curve I am looking for is the center curve of the mesh which is equidistant to its boundaries. Does that help? I updated the question to be more specific. – Arthur Mamou-Mani May 20 '12 at 11:40

1 Answers1

2

Unfortunately, in general such a curve does not exist. It only exists under very special circumstances, for example, if the boundary of your cloud can be generated by sweeping a sphere along a curve, e.g., this shape produced in POVRay (from this web page):
          Swept Sphere
So you will have to accept some type of approximation.

One idea is to first, compute the boundary somehow. Since you mention mesh, maybe you already have the boundary. Second, find maximal inscribed spheres. Third, approximate their centers by a best-fit curve.

As bo^4 suggests, and your title acknowledges, you are really looking for the medial axis, which is both difficult to compute and in general a multisheeted surface. Essentially you want to approximate the medial axis by a single curve.

Joseph O'Rourke
  • 4,346
  • 16
  • 25