How to close holes in shapes generated from 3D point cloud data using alphaShape function?

Hello,
I generated a shape from a 3D point cloud using alphaShape function. Following this step, I notice that the shape has few holes; thus the volume of the shape is under estimated. Could you please provide a suggestion on how to close the holes? Please see below for the code snippet:
[MRI] = import_STL('AnkleHisresMRI_1.stl');
Vertices = MRI.solidVertices{1};
Faces = MRI.solidFaces{1};
[~, ind1, ind2] = unique(pround(ATMRIVertices,5), 'rows');
V = V(ind1, :);
F = ind2(F);
shp = alphaShape(V); % shp = alphaShape(V, 'HoleThreshold', 100);
EstimatedVol = volume(shp);
Could you please provide suggestions to solve this issue? Thanks in advance for your time and help.
Cheers, Danny

1 Comment

Hello Guys,
I was able to close the holes by providing an alpha radius value and also specifying the minimum threshold values for the alpha shape function.
In the following post: https://au.mathworks.com/matlabcentral/answers/378376-how-to-fill-the-holes-in-3d-image-reconstructed-from-binary-images-of-ct-slides?s_tid=answers_rc1-1_p1_MLT , it was suggested to use the alphaSpectrum function to identify the max alpha radius values. For my data, I used the max radius value obtained using alphaspectrum function, and shape was not representative. However, I chose the alpha radius to be 3.5 and the shape was fine.
Could you please help on how to identify the appropriate alpha radius in a automated manner? Thank you for your time and help in advance.
Cheers, Danny

Sign in to comment.

Answers (0)

Categories

Products

Release

R2017b

Community Treasure Hunt

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

Start Hunting!