Finding translation and scale on two sets of points to get least square error in their distance?

后端 未结 8 1418
予麋鹿
予麋鹿 2020-12-07 22:19

I have two sets of 3D points (original and reconstructed) and correspondence information about pairs - which point from one set represents the second one. I need to find 3D

相关标签:
8条回答
  • 2020-12-07 22:51

    You might want to try ICP (Iterative closest point). Given two sets of 3d points, it will tell you the transformation (rotation + translation) to go from the first set to the second one. If you're interested in a c++ lightweight implementation, try libicp.

    Good luck!

    0 讨论(0)
  • 2020-12-07 22:52

    The general transformation, as well the scale can be retrieved via Procrustes Analysis. It works by superimposing the objects on top of each other and tries to estimate the transformation from that setting. It has been used in the context of ICP, many times. In fact, your preference, Kabash algorithm is a special case of this.

    Moreover, Horn's alignment algorithm (based on quaternions) also finds a very good solution, while being quite efficient. A Matlab implementation is also available.

    0 讨论(0)
提交回复
热议问题