Determining types of 3D transformation between two sets of cloud points

asked 2020-02-16 18:03:37 -0500

Ibai gravatar image

Hi. I am new in the forum and I have a little question.

I have two cloud of points in 3D and I know that the second cloud is obtained applying a transformation matrix.

I think, if I am not mistaken, that I need to use the estimateAffine3D function. But, in this case, I would like to know how much of each transformation has been applied. For example, I would like to know if the second set of clouds has been scaled 2 times, rotated 25º and sheared 5 units in the X axis. The second set of points can have any kind of transformations.

thanks a lot for your time!

edit retag flag offensive close merge delete

Comments

estimateAffine3D seems to need you to give points in paired order, i.e. matched. apart from that, you get a 3x4 matrix representing the affine 3d transformation. you can decompose that matrix into those components you want. opencv has functions to decompose matrices according to some criteria. if none of those fit your needs, you'll have to apply linear algebra knowledge.

crackwitz gravatar imagecrackwitz ( 2020-02-19 09:20:48 -0500 )edit