6

My 3D Scanner scans some object from different angles to get a 360° surface reconstruction in the end. The point clouds of each scan have different amounts of points and need to be merged. In the PCL library, that I would like to use for the reconstruction, there are algorithms for merging point clouds with the same amount of points, using some iterative closest point method.

I would like to avoid finding out the axis of the rotation. Of course, knowing it's position and the angle of the rotation, I could just multiply all my points of one cloud with the rotation matrix and then merge the clouds. Is there any way to merge them without knowing the center of rotation? (And maybe even get it's position out of the algorithm?)

Reed Richards
  • 4,178
  • 8
  • 41
  • 55
janoliver
  • 7,744
  • 14
  • 60
  • 103

2 Answers2

2

Well, it seems an old question, just may be help to other people :) It won't make sense if you merge the point clouds without registration. Thus ICP should be employed. Then you can perform transformation to the corresponding Point Cloud, and merge them after that. Should be straight forward.

Bona
  • 21
  • 2
1

The only way that I have been able to figure out how to concatenate clouds of two different sizes is to pad the smaller cloud up to the same size as the larger cloud. I did it by testing which is largest then filling a temporary cloud with the smaller cloud and then filling the balance with 0 0 0.

The other way that I see is to create a temporary cloud with all 0 0 0 points and then filling the lower portion of the temporary cloud with the smaller cloud.

I think the latter is easier to implement but the former is faster. I used the former.

R Reinhold
  • 11
  • 1