Is there a better alternative to the convexhull function to produce 3D triangulation?

3 views (last 30 days)
I have scanned a cube of known dimensions using Microsoft Kinect. I need to calculate the volume of the cube and compare it against the theoretical volume to determine accuracy. I have used convexhull to calculate the triangles and a function called faceNormal by David Legland to calculate normals. However, I notice that the mesh generated does not reflect the real shape because some faces of the cube are really not flat. If I use other software such as Geomagic the same point cloud looks much better after mesh generation. I have calculated the volume of the cube: 1. Reconstructed with Matlab = 0.936 litres 2. Reconstructed with Geomagic = 0.783 litres 3. Theoretical volume = 0.696 litres
In average the volume reconstructed with Matlab is 34% higher that the theoretical volume which is not great. I would like to know other alternatives to the convexhull function to calculate 3D triangulation.

Answers (2)

Matt J
Matt J on 22 Mar 2013
Edited: Matt J on 22 Mar 2013
CONVHULL or CONVHULLN will calculate the volume directly from the input vertices, and return it as the 2nd output argument.
  3 Comments
Matt J
Matt J on 26 Mar 2013
In your original post, you said you were scanning a cube (which would be convex). What is the shape then?
Matt J
Matt J on 26 Mar 2013
You can apply CONVHULLN to the Delaunay triangulation of a nonconvex shape
DT=DelaunayTri(V); %The rows of V are the vertices
T=DT.Triangulation;
N=size(T,1);
vols=zeros(1,N);
for ii=1:N
[~,vols(ii)]=convhulln(V(T(ii,:),:));
end
volume = sum(vols),

Sign in to comment.


Sean de Wolski
Sean de Wolski on 26 Mar 2013
Perhaps:
doc isosurface
But this will be much slower than convhulln

Categories

Find more on Triangulation Representation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!