MATLAB: Volume Changes with Convhull/Triangulation vs. alpha shape…why

3d datavolume of 3d shape

I have a set of 3d data point (x,y,z). I am trying to get the volume of space that the points encompass. 1. I used shp = alphashape(x,y,z) to plot the coordinates and then used Volume(shp) to get a volume. 2. I used [tritdx,V]=convhull(x,y,z) to get the volume of the space. 3. I used delaunay Triangulation (x,y,z) and then [K,V]=convexHull(DT) to get a volume.
2 and 3 both report the same value for the volume (5.0779e+5) 1 reports the volume as 5.4956e+4
Which option is the correct one for calcuating the volume of 3d space using (x,y,z) coordinate points?
Thanks

Best Answer

The convex hull of a set of points is, well, convex. The alphaShape of a set of points may or may not be convex.
What your results tell me is that you have a hollow space in your object/point set that is being measured by the convex hull but not by the alpha shape. Should you measure that hollow space? It depends. If you're measuring how much clay it takes to make a coffee mug you want the alpha shape volume (you don't care about the inner volume of the mug that will hold the coffee when it is used.) If you're looking how much space a shrink-wrapped coffee mug takes up on the store shelf (assuming you can't nest one mug inside another) you want the convex hull volume.