Surface Reconstruction from Scattered Points Cloud: MyCrust Robust
It is now available on Matlab file exchange the robust and new version of MyCrust.
I hope you’ll enjoy it !
MyCrust take as input a 3D scatter points cloud and return a tight, manifold, triangulation.
Remember that crust algorithm needs a cloud representing a volume, so open surface may give inaccurate results. For example : a plane can not be triangulated, half-sphere is in doubt, a sphere with a small hole shoud be good.
The more points are given the best the surface will be fitted, of course in this case you would have to wait more and in the worst case a memory help error may occurs. The best results are obtained with more points in high curvature feature.
The old version did not ensure the output surface to be a manifold so it could be used only for graphical purpose. In the new one a tight, regular manifold is returned. It as outward normals orientation, after using this algorithm is very easy to get an STL file from a point cloud.
I added a manifold extraction tool that also correct the errors (slivers) generated by delaunayn during the initial tessellation.
Popularity: 9% [?]
Related Posts
Comments
20 Comments on Surface Reconstruction from Scattered Points Cloud: MyCrust Robust
-
WS on
Wed, 30th Sep 2009 09:09
-
Kevin Marchelak on
Wed, 30th Sep 2009 21:25
-
ucd puri on
Sun, 15th Nov 2009 09:57
-
Joel Warneke on
Fri, 12th Mar 2010 03:19
-
Li on
Wed, 7th Apr 2010 11:45
-
Javed on
Fri, 14th May 2010 00:17
-
ERic on
Fri, 11th Jun 2010 13:16
-
Van Perry on
Fri, 16th Jul 2010 04:13
-
TB on
Thu, 26th Aug 2010 16:12
Hi Luigi,
excellent coding! Thanks a lot. Just a word on spelling… You always write “recostruction”, but it should read “reconstruction”. Since I came across this misspelling time and again, I just wanted to let you know.
Keep on and best regards,
WS
[Reply]
Hi, thanks for all your postings, they are fantastic. I read on your blog that using this function, the volume of the triangulated surface. Question 1) How do you do that.
I have another question with volume visualization.
i have a volume similar to as shown in this link.
http://www.mathworks.se/products/matlab/demos.html?file=/products/demos/shipping/matlab/transpdemo.html
When i using the alpha a value to 0.3 to visualise the inner structure similar to that in the above link . Now I want to calculate the surface area of that inner structure ONLY.Question 2) Is that possible, and how do i go about finding it.
I would be very thankful if you could please provide some guidance. I have tried to ask many people and posted this questions at many places but i never received any answer. Kindly help please.
[Reply]
Luigi Giaccari Reply:
November 15th, 2009 at 10:16
Hi I am afraid that what you have is volume data, like the input format of the “isosurface command”.
SInce I can not see your data I can not give a clearer answer.
If you’ll be more specific I’ll do it.
[Reply]
Hi,
I was wondering if “MyCrust” will work on a 3D point cloud that has points though out the cloud. I am looking at micro seismic data and need to calculate the volume of all the events.
Thanks in advance,
Joel
[Reply]
Luigi Giaccari Reply:
March 13th, 2010 at 08:45
Hi,
it is not clear to me what events are. If you need to mesh a filled cloud you may try:
http://www.advancedmcode.org/surface-recostruction-from-scattered-points-cloud-the-ball-fretting.html
You may also want to look at; “alpha shape” but most of at: ” the ball pivoting algorithm”.
I hope I was helpful
Luigi
[Reply]
Hi Luigi,
I’m trying to calculate the normal vector of each vertex in the mesh.
I wrote a method that finds the neighboring traingles of each vertex, and then takes their normals (using your method) and sums them up.
Now, I was wondering how to determine the directions of the normals. I need them to point out of the surface. Can you please suggest a way to do this?
Thanks,Li
[Reply]
Luigi Giaccari Reply:
April 10th, 2010 at 15:52
The normals returned by the the program are already outward.
Luigi
[Reply]
excellent coding ,, I would say
could you please guide me how to import point cloud data in .igs format to use this code.
Thanx
Javed
[Reply]
Luigi Giaccari Reply:
May 14th, 2010 at 07:31
I am sorry but I don’t remember how to extract points from .igs files.
[Reply]
Javed Reply:
May 14th, 2010 at 10:23
Its ok
So could you please tell me what are the supportive file formats???
Thanx,
Javed
[Reply]
Luigi Giaccari Reply:
May 14th, 2010 at 10:36
This function supports matlab arrays, it is up to you to transform your data fomrat in matlab arrays. On file exchange you may find some routine to do the job.
Luigi
Hello,
How can you export the result in a 3D format (VRML or STL)?
Your code is very usefull for me.
Thanks a lot to share
Eric
[Reply]
Luigi Giaccari Reply:
June 11th, 2010 at 20:33
To write STL files you can use:
http://www.mathworks.com/matlabcentral/fileexchange/20922-patch2stl
I know no Maltab script to generate a VRML, if you find one please let me know.
Luigi
[Reply]
Is your MyRobustCrust a variation of the Ball Pivot Algorithm? How is it different, Or is it exactly the same? Your program works very well.
[Reply]
Luigi Giaccari Reply:
July 18th, 2010 at 12:08
Sorry for my late answer, I had troubled days.
MyRobustCrust is totally different from the BPA, nothing to to with it.
It has some elements of the PowerCrust from Amenta.
Luigi
[Reply]
Hi.
Your program looks great, and is exactly what I need. Is there any simple way to calculate the volume?
Best regards, TB
[Reply]
Luigi Giaccari Reply:
August 26th, 2010 at 18:03
Coudn’t be easier!
http://www.advancedmcode.org/volume-enclosed-by-a-triangulated-surface.html
[Reply]
Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!
Include MATLAB code in your comment by doing the following:
<pre lang="MATLAB">
%insert code here
</pre>


















































Luigi Giaccari Reply:
September 30th, 2009 at 17:05
Thank you,
my english is the worst ever….I am working on it
That word is everywhere in my submissions I ‘ ve got a lot of work to do….
[Reply]