Page 1 of 1

M3C2 core points

Posted: Mon May 02, 2016 12:29 pm
by SJG
A quick question about how core points work in M3C2. It's my understanding from reading the literature that core points limit computational intensity by using the average position of points around them (from within a user defined cylinder area). However, if you want to use M3C2 to compute signed distances between all points in the reference cloud (i.e by selecting - use cloud #1, instead of subsampling in your input parameters); is the algorithm still averaging the position of points within a projection cylinder base area?

For example if within one projection cylinder base area you have 20 core points - is M3C2 still averaging the position/orientation of these 20 points and then measuring the same distance between the clouds 20 times? Or are there hypothetically 20 different M3C2 distances measure for each core point across one cylinder base area?

What I'm asking is are M3C2 distances more accurate when you compute distances between all points/ use the entire density of the reference cloud?

Thanks!

Re: M3C2 core points

Posted: Sun May 08, 2016 6:02 pm
by daniel
We may have to wait for Dimitri's confirmation, but I believe that the 'averaging' principle of core points is only used for computing the distance itslef. But the distance is expressed at the exact core point position nevertheless (and it depends on its position). Therefore, if all points are used as 'core points', then each one will have a different distance.

What happens is that for each (core) point, a cylinder is used to extract the nearest points of this point, as well as the nearest points in the other cloud. Then the M3C2 distance and statistics are computed. If you change the (core) point position, then the set of its nearest points will change. And therefore the M3C2 distance will change.

Re: M3C2 core points

Posted: Mon May 09, 2016 3:58 pm
by SJG
Thanks for the info Daniel!

Re: M3C2 core points

Posted: Tue May 17, 2016 8:16 am
by Dimitri
Hi,

core points is not solely to define an average point cloud position, but it's to compute distance with a sampling that the user can define as he wishes: either a minimum distance sampling, or using a grid of core points (e.g., rasterize cloud #1).
Core points only tells you where you do your distance calculation and where you "anchor" your cylinder to define the points in cloud #1 and cloud #2 that will be used for average distance calculation. As Daniel explains, if you move slightly the core point, the distance calculation might be slightly different if the subset of neighbouring points is slightly different.
The distance calculation itself doesn't use core points, only the raw point clouds.

I know it can be troubling, but once you get how it works, core points are really powerful features to speed up calculation and get your results with a sampling consistent with your objectives.