Pointcloud Clean up functions

To post any request/idea for new functionalities
Post Reply
Discus999
Posts: 1
Joined: Tue Mar 10, 2015 3:15 pm

Pointcloud Clean up functions

Post by Discus999 »

Hello all,

I worked for a wile with Cloud Compare with generated point clouts of an fringe projection system.
But it is hard to remove for example outliers, or small wrong point clouts outside the measured area.
At least it is hard to to clean-up the measured point clouts.
You already add some functions of the PCL library at your program.

So here my question:
Is it possible to add some clean up functions from the PCL libary in Cloudcompare?
For example:
RadiusOutlierRemoval
ShadowPoints

Thanks a lot for your great work on CloudCompare,

Best regards,
Discus999
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Pointcloud Clean up functions

Post by daniel »

Hi,

I guess you have already used the Statistical Outlier Removal (SOR) tool? (or the slightly more evolved 'Tools > Noise > Clean' version?).

The Radius Outlier Removal (ROR) filter of PCL only consists in removing the points with a low local density (i.e. the points that are alone in a given sphere). You can get the exact same result by computing the density (with the 'Tools > Other > Density' - use the 'precise' density with the same radius than what you would have used for the ROR filter and choose the 'number of neighbors' as output). Eventually remove the points with a low density (e.g. 1 or 2 neighbors) with the 'Edit > Scalar fields > Filter by value' method.

The ShadowPoints filter is more interesting. We should ask Luca (the qPCL plugin author) about that.
Daniel, CloudCompare admin
rowild
Posts: 2
Joined: Tue Oct 15, 2024 6:17 am

Re: Pointcloud Clean up functions

Post by rowild »

Old post, but I am new to CloudCompare! And fascinated!

I would like to ask if there is a way to select certain points and move them to the same level?

Rather often it happens that a e.g. river or lake is not generated properly, but instead spreads beneath its surface level. I would like to try to collect those points and move them up to the same level as the river's surface. I am aware that it might not work, since those low-generated points often are only what the water reflects. But I would like to try anyway...

Thank you!
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Pointcloud Clean up functions

Post by daniel »

Well, either you have a way to easily segment the points at the water level (such as a classification field for instance), or you can use the scissors tool to segment these points manually. Then you can manually rise them (with the 'Edit > Translate/Rotate' tool), or by a specific amount (with the 'Edit > Apply transformation tool).

And last, you can merge the 2 sets of points back together.
Daniel, CloudCompare admin
rowild
Posts: 2
Joined: Tue Oct 15, 2024 6:17 am

Re: Pointcloud Clean up functions

Post by rowild »

Thanks for the reply! – I did use the scissors to create a separate point cloud of all those points that are scattered over various z positions below the "ground". But I have not yet found a function that allows me to move all those point to the very same z level – let's say 0 – in order to form a flat-levelled ground. Did I oversee something?

Maybe I explained myself badly, let me try again, just to be sure. The points I am talking about are all on different z positions below the "ground" (which is a floor or a pathway or in my case the surface of a calm river). I would like to move all those points below 0 (and they all have different values) to the same z level, 0 in my case, in order to fill that whole and restore the surface of the river. So it should be a function that sets z to 0, if I am not totally mistaken.
daniel
Site Admin
Posts: 7711
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Pointcloud Clean up functions

Post by daniel »

Ah, ok, then there are 2 solutions:
- you multiply (Edit > Multiply/scale) their z coordinates by 0
- you create a scalar field with a constant value (0) and then transfer this scalar field to the z coordinates ('Edit > Scalar fields > Add constant SF' and 'Edit > Scalar fields > Set SF as coordinate(s)')
Daniel, CloudCompare admin
Post Reply