I have a question about how CloudCompare compute the closest point set (under the function' Distance')?
Is there a way to figure out how close in distance is defined as closest point set? Can I change some of the parameter that define how close of those sets are (for instance by define the smallest octree size or octree level)? Can I directly define the criteria of 'closest'?
Also can someone tell me the full name of the publication from Besl et al. cited on page 112 of the CC user manual?
Thanks, and enjoy CC!
How CloudCompare compute the 'closest point set'?
-
- Posts: 3
- Joined: Fri Sep 30, 2016 10:21 pm
Re: How CloudCompare compute the 'closest point set'?
Hi,
This methods is very simple and it has no parameter. It only selects for each point of a first cloud, its closest point in a second cloud. And you obtain as many points from the second cloud as there are points in the first one (pay attention that some points may be duplicated by the way). And the octree parameter does not change the result (it only changes the execution speed).
Internally you could get the distance for each point but this is not exposed at the moment.
And Besl's article is:
Paul J. Besl, « A Method for Registration of 3-D Shapes », IEEE Trans. on Pattern Analysis and Machine Intelligence, Los Alamitos, CA, USA, IEEE Computer Society, vol. 14, no 2, 1992, p. 239–256 (DOI 10.1109/34.121791)
This methods is very simple and it has no parameter. It only selects for each point of a first cloud, its closest point in a second cloud. And you obtain as many points from the second cloud as there are points in the first one (pay attention that some points may be duplicated by the way). And the octree parameter does not change the result (it only changes the execution speed).
Internally you could get the distance for each point but this is not exposed at the moment.
And Besl's article is:
Paul J. Besl, « A Method for Registration of 3-D Shapes », IEEE Trans. on Pattern Analysis and Machine Intelligence, Los Alamitos, CA, USA, IEEE Computer Society, vol. 14, no 2, 1992, p. 239–256 (DOI 10.1109/34.121791)
Daniel, CloudCompare admin
-
- Posts: 3
- Joined: Fri Sep 30, 2016 10:21 pm
Re: How CloudCompare compute the 'closest point set'?
Hi Daniel,
Thanks for the reply, it is very helpful. I have a continuous question based on your answer:
If I compare my result of C2C distance and my result of closest point set, I realize the closest point set is the coherent movement whereas the part that not visible in the closest point set, but visible in the C2C result always shows a large displacement. My question is: what do you think is the part that belongs to C2C distance but not belongs to the closest point set? (Is that because of the computing of the Hausdorff distance which calculate the maximum distance between two comparable point sets?)
Also I want to know how octree level related with the C2C distance calculation for the CloudCompare software?
Again thanks for the assistance, really appreciate your help!
Thanks for the reply, it is very helpful. I have a continuous question based on your answer:
If I compare my result of C2C distance and my result of closest point set, I realize the closest point set is the coherent movement whereas the part that not visible in the closest point set, but visible in the C2C result always shows a large displacement. My question is: what do you think is the part that belongs to C2C distance but not belongs to the closest point set? (Is that because of the computing of the Hausdorff distance which calculate the maximum distance between two comparable point sets?)
Also I want to know how octree level related with the C2C distance calculation for the CloudCompare software?
Again thanks for the assistance, really appreciate your help!
Re: How CloudCompare compute the 'closest point set'?
You could say that the points that are not in the CP set are those that were not correlated with the compared cloud (with respect to the 'nearest neighbor distance', which is a quite simple way to correlate points but generally quite effective on large / dense clouds).
And the octree level is only used to balance between large cells (with potentially a lot of points) for which neighbors are probably quite close (= fast search) and small cells (= fewer points per cell) but potentially farther neighbors and longer search. If your clouds are far away (= big distances) then you would prefer large cells. But if there are a lot of points then you would prefer smaller cells. CC tries to find the best comprise automatically.
And the octree level is only used to balance between large cells (with potentially a lot of points) for which neighbors are probably quite close (= fast search) and small cells (= fewer points per cell) but potentially farther neighbors and longer search. If your clouds are far away (= big distances) then you would prefer large cells. But if there are a lot of points then you would prefer smaller cells. CC tries to find the best comprise automatically.
Daniel, CloudCompare admin