I am trying to measure the 3D relative position between two markers detected with a cvTriangulatePoints() and a stereo rig.
I get reasonably accurate 3D positions for the markers. I then try and find the rigid body transform between them:
Using my own SVD based solution I get a reasonable answer
[-0.9965, 0.0532, -0.06352, 458.125
0.0074, 0.8208, 0.5711, -442.424
-0.0825, -0.568, 0.8183, 109.835 ]
With estimateAffine3D() I get:
[0.90201, 0.1902, 0.202241, -108.809
0.03214, 0.3073, -0.62058, 458.116
0.06676, -2.065, -1.58894, 1722.368]
Not sure how to interpret the output of affine 3D, some of the values seem to line up (give or take a sign change). But how do you have a rotation matrix value of "-2" ?
I'm not even sure what an affine transform means in 3D!