Hello everybody,
I would like to write to you to find out which method would be the most judicious to compare a cloud of points (from several stations (around 200) of a Faro scanner) to a theoretical horizontal plane (in fact knowing if a concrete slab is flat).
Sorry if this question has already been asked, I searched the forum but couldn't find a similar problem.
I thank you in advance
Good day to you all.
NB: sorry if my English is not correct (I am French)
comparison of a cloud of points to a theoretical horizontal plane
Re: comparison of a cloud of points to a theoretical horizontal plane
Well, you can create a virtual plane in CC without too much problem (via the 'Primitive factory', or the 'Edit > Plane > Create' function which gives more options). And you can move the plane entity afterwards (either manually or via 'Edit > Apply translation').
Then, you'd better use the 'Cloud-to-primitive' distance (via the 'Tools > Distances').
And if you have 200 scans, you can also automate this process via the command line: https://www.cloudcompare.org/doc/wiki/i ... _line_mode
In command line mode, you'll have to use cloud-to-mesh' distances (the 'Cloud-to-primitive' distance is not available yet). It's just slightly less accurate. You should create a plane large enough to encompass all the scans, Then save it as a BIN file, and eventually load it in command line first before loading your clouds and compute the C2M distances. As the single 'mesh', it will be used for all comparisons.
Then, you'd better use the 'Cloud-to-primitive' distance (via the 'Tools > Distances').
And if you have 200 scans, you can also automate this process via the command line: https://www.cloudcompare.org/doc/wiki/i ... _line_mode
In command line mode, you'll have to use cloud-to-mesh' distances (the 'Cloud-to-primitive' distance is not available yet). It's just slightly less accurate. You should create a plane large enough to encompass all the scans, Then save it as a BIN file, and eventually load it in command line first before loading your clouds and compute the C2M distances. As the single 'mesh', it will be used for all comparisons.
Daniel, CloudCompare admin
Re: comparison of a cloud of points to a theoretical horizontal plane
Hello Daniel,
Thank you for your quick response.
I will look at the process that you indicated to me and I will come back to you later.
Thank you again and have a good rest of the day.
Thank you for your quick response.
I will look at the process that you indicated to me and I will come back to you later.
Thank you again and have a good rest of the day.
Re: comparison of a cloud of points to a theoretical horizontal plane
Hello Daniel,
I would like to come back to you regarding the initial request. I did a test on a small slab where I registered 2 point cloud stations.
Then, I was able to create a horizontal plane with the function that you indicated to me: "'Edit > Plan > Create'".
But my cloud of points is not well oriented in relation to this plane, is it possible to define a plane by 3 points and to calculate the differences between the cloud of points and this plane? or must reorient the cloud of points so that the average of the points composing the slab is closest to the horizontal plane (and in the latter case, how can we do this)?
Thanking you in advance.
I would like to come back to you regarding the initial request. I did a test on a small slab where I registered 2 point cloud stations.
Then, I was able to create a horizontal plane with the function that you indicated to me: "'Edit > Plan > Create'".
But my cloud of points is not well oriented in relation to this plane, is it possible to define a plane by 3 points and to calculate the differences between the cloud of points and this plane? or must reorient the cloud of points so that the average of the points composing the slab is closest to the horizontal plane (and in the latter case, how can we do this)?
Thanking you in advance.
Re: comparison of a cloud of points to a theoretical horizontal plane
So there's a tool (Tools > Level - see https://www.cloudcompare.org/doc/wiki/index.php/Level) that allows you to pick 3 points and then it will rotate the whole cloud so that these 3 points are horizontal.
But that's maybe not what you want... It can still be used temporarily as it outputs the transformation matrix to the cloud in the console. So you could apply it on a clone of the cloud, copy the resulting matrix, delete the clone cloud, and then create a horizontal plane and then apply the inverted matrix to the plane! (with 'Edit > Apply transformation', paste the matrix and check the 'inverse' checkbox). Quite tedious though...
There's also a plugin named MPlane that allows to compute distance to a plane defined by a set of points directly: see https://www.cloudcompare.org/doc/wiki/i ... e_(plugin)
But that's maybe not what you want... It can still be used temporarily as it outputs the transformation matrix to the cloud in the console. So you could apply it on a clone of the cloud, copy the resulting matrix, delete the clone cloud, and then create a horizontal plane and then apply the inverted matrix to the plane! (with 'Edit > Apply transformation', paste the matrix and check the 'inverse' checkbox). Quite tedious though...
There's also a plugin named MPlane that allows to compute distance to a plane defined by a set of points directly: see https://www.cloudcompare.org/doc/wiki/i ... e_(plugin)
Daniel, CloudCompare admin
Re: comparison of a cloud of points to a theoretical horizontal plane
I thank you for your return.
Isn't there a function or extension that would allow you to recognize an average plan from the entire point cloud?
Thanks in advance.
Isn't there a function or extension that would allow you to recognize an average plan from the entire point cloud?
Thanks in advance.
Re: comparison of a cloud of points to a theoretical horizontal plane
Yes, you can simply use 'Tools > Fit > Plane' (it will fit a single plane on the whole cloud)
Daniel, CloudCompare admin
Re: comparison of a cloud of points to a theoretical horizontal plane
Hello Daniel,
I thank you for your return.
It worked, thank you. I saw in another topic (https://www.danielgm.net/cc/forum/viewtopic.php?t=3157) that you "personally think M3C2 is a better choice anyway than distance at most close neighbor."
In my case, can we use this function (cloud-plane distance) for this M3C2 extension?
thanks again.
another unrelated question: do you think there is a function allowing us to recognize a geometric shape in a cloud (simply a sphere, for example or a more complex element (doors for example in a cloud of points representing a building). Thanks in advance.
I thank you for your return.
It worked, thank you. I saw in another topic (https://www.danielgm.net/cc/forum/viewtopic.php?t=3157) that you "personally think M3C2 is a better choice anyway than distance at most close neighbor."
In my case, can we use this function (cloud-plane distance) for this M3C2 extension?
thanks again.
another unrelated question: do you think there is a function allowing us to recognize a geometric shape in a cloud (simply a sphere, for example or a more complex element (doors for example in a cloud of points representing a building). Thanks in advance.
Re: comparison of a cloud of points to a theoretical horizontal plane
About the first question: I don't think M3C2 can be used in conjunction with a plane. Especially a large scale one. Because in a way it kind of considers a local plane (or at least an average depth of the nearest point and its neighbors). But I'm not sure that's what you are looking for.
And regarding the second question: the only approaching tool is the 'RANSAC Shape Detection' plugin (https://www.cloudcompare.org/doc/wiki/i ... n_(plugin)). This tool can detect some basic primitives (planes, spheres, cylinders, etc.). And in a random way... But something it can be quite powerful.
And regarding the second question: the only approaching tool is the 'RANSAC Shape Detection' plugin (https://www.cloudcompare.org/doc/wiki/i ... n_(plugin)). This tool can detect some basic primitives (planes, spheres, cylinders, etc.). And in a random way... But something it can be quite powerful.
Daniel, CloudCompare admin