CloudCompare mesh adds unwanted surface

Feel free to ask any question here
EngineerKris
Posts: 5
Joined: Thu Aug 13, 2015 5:36 pm

CloudCompare mesh adds unwanted surface

Post 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
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: CloudCompare mesh adds unwanted surface

Post 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).
Daniel, CloudCompare admin
EngineerKris
Posts: 5
Joined: Thu Aug 13, 2015 5:36 pm

CloudCompare mesh adds unwanted surface

Post 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?
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: CloudCompare mesh adds unwanted surface

Post 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 8308 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
Daniel, CloudCompare admin
EngineerKris
Posts: 5
Joined: Thu Aug 13, 2015 5:36 pm

Re: CloudCompare mesh adds unwanted surface

Post 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?
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: CloudCompare mesh adds unwanted surface

Post 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 8292 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 8292 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.
Daniel, CloudCompare admin
EngineerKris
Posts: 5
Joined: Thu Aug 13, 2015 5:36 pm

Re: CloudCompare mesh adds unwanted surface

Post 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 ?
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: CloudCompare mesh adds unwanted surface

Post 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).
Daniel, CloudCompare admin
EngineerKris
Posts: 5
Joined: Thu Aug 13, 2015 5:36 pm

Re: CloudCompare mesh adds unwanted surface

Post 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.
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: CloudCompare mesh adds unwanted surface

Post 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).
Daniel, CloudCompare admin
Post Reply