Ask Your Question


asked 2016-12-20 20:40:46 -0500

vrshy gravatar image

Just a simple question, in these two statements

E = cv::findEssentialMat( points1, points2, focal, pp, cv::RANSAC, 0.999, 1.0, mask); cv::recoverPose(E, points1, points2, R, t, focal, pp, mask);

Is the rotation and translation calculated from points1 to points2 or points2 to points1?

Thank you.

edit retag flag offensive close merge delete

3 answers

Sort by ยป oldest newest most voted

answered 2016-12-27 15:35:49 -0500

vrshy gravatar image

I tested it, it's the other way around if you apply rotation and translation to the camera 1 coordinates you get to camera 2 which makes sense considering the projection matrices are K[I|0] and K[R|t].

edit flag offensive delete link more

answered 2017-12-12 05:36:28 -0500

I'm working with it and I had the same issue. In the fucntion descrption it says that first you use previous points and then the actual points but I realised that it is worng. You need to introduce as first parameter the 'second points' and then 'previous points'. IN BOTH FUNCTIONS!

edit flag offensive delete link more

answered 2016-12-21 17:48:56 -0500

Tetragramm gravatar image

Without running a test I can't be 100% certain, but it should be camera 1 is (0,0,0) (0,0,0).

The R and t are the rotation and translation (in camera 2's coordinates) to get to camera 1.

edit flag offensive delete link more


Thank you!

vrshy gravatar imagevrshy ( 2016-12-27 15:36:32 -0500 )edit

Question Tools

1 follower


Asked: 2016-12-20 20:40:46 -0500

Seen: 4,332 times

Last updated: Dec 12 '17