Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have an unorganized point cloud with a bunch of 3d points. I use a certain surface reconstruction method to obtain a triangle mesh of the underlying surface. The surface could be closed or not. Can somebody point me out to how I would go about estimating the volume enclosed by such a surface (if its closed). If its not closed, then what would a way to "close" it and get a volume? I would appreciate if somebody could even point out C++ libraries that would help me do this.

share|improve this question
This is maybe already answered on StackOverflow. – Libor Feb 15 '13 at 14:43
Thanks Libor, that was helpful. Could I keep this question alive to see if I get answers to the second part of my question? The thread mentioned before doesn't deal with surface that are not closed. What are my options in such a case ? – Mustafa Feb 15 '13 at 17:42
This is an interesting problem for geometry and graph theory. I am sure there is a simple iterative algorithm for closing the holes or maybe just improvement of your algorithm that does not introduce the holes. I have a feeling the problem can be defined in 2D as well. Posting such problems in simpler and well defined form on helped me a lot several times. – Libor Feb 15 '13 at 18:06
If the first part of your question is answered by StackOverflow, link to SO and then remove that part from the question, so this is just about the second part. – endolith Apr 3 '13 at 13:55

This site has both code and theoretical descriptions. Look for items that mention "polyhedral mass properties". They typically live in the "physics" sections of the site.

share|improve this answer

"Closing" the volume can be done by adding missing surfaces. Project your entire mesh onto the XY plane, assigning the value +1 if the normal of a triangle points away from the XY plane and -1 if it points to the XY plane. If the volume is closed, each part of the projection is covered by an even number of triangles from the mesh; half with value +1 and half with value -1.

If there's a simple single hole in the triangle mesh, there will be a simple single hole in the projection as well. Just trace the edges back. If there are multiple holes, there's generally no unique solution. (You could patch both holes or connect them by a tube).

Since there might be triangles missing orthogonal to the XY plane, you also need to repeat this for the XZ and YZ planes.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.