Page 1 of 3

CloudCompare mesh adds unwanted surface

Posted: Thu Aug 13, 2015 5:44 pm
by EngineerKris
Greeting everybody.
I find CloudCompare very interesting, please let me congratulate such an effective open source software.

Let me also adress my dumb beginner question, which is-
I have point cloud which was loaded up to CloudCompare and calculation of normal was applied.
Then I have used Poisson Recon plug in to mesh my point cloud.

Once open in CloudCompare I have noticed plugin add mesh at space where was no points. To better visualise I am attaching rendering of this in Inventor.

Could you please advise how to get proper mesh on point cloud I am using? Kindly please advise any step...

Image

Re: CloudCompare mesh adds unwanted surface

Posted: Fri Aug 14, 2015 5:57 am
by daniel
Wow, I believe your normals must be badly computed.

Are they all oriented properly?

Make sure also that the normal computation 'kernel' (radius) is big enough so a to avoid any point with null normals (they appear black whatever the orientation of the cloud).

CloudCompare mesh adds unwanted surface

Posted: Mon Aug 17, 2015 10:33 am
by EngineerKris
Daniel,

Thanks for response, however I would put in order few of basic questions with kindly query for you to advise the answers or workaround:

1. How to check if normals are correct?
2. Do I need to install add inn (as used Poisson Recon) to generate good mesh for my 3D scans? Or is it possible without any add inns?
3. What steps shall I engage to efficiently change my point cloud to the mesh within your software?
4. My point cloud is coloured, how to apply those textures after meshing is completed?

Re: CloudCompare mesh adds unwanted surface

Posted: Mon Aug 17, 2015 7:30 pm
by daniel
1. Here is what nice normals should look like:
cc_nice_and_ugly_normals.jpg
cc_nice_and_ugly_normals.jpg (78.36 KiB) Viewed 8363 times
2. The 'PoissonRecon' plugin is the only way to generate clean 3D meshes in CloudCompare (it is shipped with CC by default). But if you only 2.5D meshes (flat terrain, etc.) the "2.5D Delaunay" triangulation should be sufficient (and you don't need to compute normals)

3. If you choose the 'PoissonRecon' way, simply compute the normals (you can test the latest beta version which has an 'auto' button to compute the best radius automatically) and let CC re-orient the normals after that (answer "Yes" to the question). Eventually use the PoissonRecon plugin (and optionally compute the 'density' so as to get a better mesh coverage afterwards).

4. Once again, PoissonRecon in the latest beta version will automatically import the color information

P.S.: don't hesitate to send me a sample cloud if you want me to give you the best parameters

Re: CloudCompare mesh adds unwanted surface

Posted: Tue Aug 18, 2015 11:58 am
by EngineerKris
I have tried with beta CC. There is some error while using Poisson Recon plugin...
I have sent you sample of cloud at "Contact Us" > Administrator in link upload file.
Coud you please check how to translate it into 3D mesh properly and advise me?

Re: CloudCompare mesh adds unwanted surface

Posted: Tue Aug 18, 2015 7:45 pm
by daniel
Indeed, thanks for the feedback. I've just fixed the issue (the beta version has just been updated, you can download it again).

And regarding your cloud: it's quite noisy so you'll have to denoise it a little bit first in order to get not-too-bad-normals (you can increase the points size to see the noise). You can use the SOR filter to do this (see 'Tools > Clean > SOR filter' - leave the default parameters). Then compute the normals and when asked about orienting the normals, say yes and use a low number of neighbors (3 for instance). Here's what you should see:
cc_cleaner_normals.jpg
cc_cleaner_normals.jpg (74.87 KiB) Viewed 8347 times
(note that it's not perfect yet, but it's hard to get a better result with a noisy and incomplete scan, especially on the front part where the two sides are very close and almost 'connected' due to the noise)

And here is the result with PoissonRecon:
cc_poisson_with_colors.jpg
cc_poisson_with_colors.jpg (61.51 KiB) Viewed 8347 times
You could use the density information to remove the bad parts (see http://www.cloudcompare.org/doc/wiki/in ... n_(plugin)). But it would be better to get rid of the noisy parts prior to use PoissonRecon (maybe with the scissors tool?). At least you should get the idea.

Re: CloudCompare mesh adds unwanted surface

Posted: Wed Aug 19, 2015 5:50 am
by EngineerKris
I am amazed about your work attitude, great appreciate! Thanks Daniel.
What more, do you have any procedures for cleaning and preparing normals for this?
All my scans are in similar quality, I just saw that SOR filter works really good, but cannot say the same about normals.
Each time those are "ugly black". Any recommednations in this ?

Re: CloudCompare mesh adds unwanted surface

Posted: Wed Aug 19, 2015 1:30 pm
by daniel
Did you use the 'auto' button of the normals computation dialog? And if the normals are mostly black, then they may be simply globally inverted (use the 'Edit > Normals > Invert' method to invert them).

Re: CloudCompare mesh adds unwanted surface

Posted: Thu Aug 20, 2015 5:22 am
by EngineerKris
Certainly I did. Also I have tried with inverting.
The issue is there is always an area which has opposit black normals to the good ones... It is never coherent.

Re: CloudCompare mesh adds unwanted surface

Posted: Thu Aug 20, 2015 7:06 am
by daniel
It's due to the noise that 'connects' the surfaces in weird ways and the orientation propagation fails...

Apart from playing with the 'number of neighbors' parameter of the normals orientation algorithm, you'll have to segment the cloud in multiple parts and compute the normals on each part and eventually merge those parts back together.

What's the source of the points? Have they been acquired with a TLS? You can already compute the normals in a robust way with PTX and DP files (and soon FARO).