Ask Your Question

estimateAffine3D result

asked 2012-09-14 10:16:02 -0600

mgb gravatar image

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!

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2012-09-17 06:43:12 -0600

Nghia gravatar image

The affine has extra degrees of freedom that probably won't make any sense in real life, especially for rigid objects, like independent shearing/scaling in the x,y,z axis.

edit flag offensive delete link more


Yes that's why affine for 3D doesn't really make much sense - I wondered why the function was there

mgb gravatar imagemgb ( 2012-10-04 13:09:45 -0600 )edit

Question Tools


Asked: 2012-09-14 10:16:02 -0600

Seen: 1,883 times

Last updated: Sep 17 '12