Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

recoverPose translation values

Hi,I use findEssentialMat and recoverPose. (opencv 3)

I have a small problem with the translation value t. The rotation values (euler angles e) are very exact. The t values do not match. Maybe I'm expecting something else.

The t variable gives me 3 values. The three values are the relative distances (x,y,z) from camera 1 to camera 2? Is that right?

image description

Mat E, R, t, mask,mtxR,mtxQ,Qx,Qy,Qz;
cv::Point2d pp(7200,5400);
cv::Vec3d e; double focal=14285;

// EssentialMatrix
E=cv::findEssentialMat(image1_points,image2_points,focal,pp,FM_RANSAC,0.99,3,mask);

recoverPose(E, image1_points, image2_points, R, t, focal, pp, mask);

// euler angles e
e= RQDecomp3x3(R, mtxR,mtxQ,Qx, Qy, Qz);

recoverPose translation values

Hi,I use findEssentialMat and recoverPose. (opencv 3)

I have a small problem with the translation value t. The rotation values (euler angles e) are very exact. The t values do not match. Maybe I'm expecting something else.

The t variable gives me 3 values. The three values are the relative distances (x,y,z) from camera 1 to camera 2? Is that right?

image description

Mat E, R, t, mask,mtxR,mtxQ,Qx,Qy,Qz;
cv::Point2d pp(7200,5400);
cv::Vec3d e; double focal=14285;

// EssentialMatrix
E=cv::findEssentialMat(image1_points,image2_points,focal,pp,FM_RANSAC,0.99,3,mask);

recoverPose(E, image1_points, image2_points, R, t, focal, pp, mask);

cout <<  t[0] <<endl;  //x result 0.7341315867809203    IS  t[0] the x value?
cout <<  t[1] <<endl;  //y result 0.06380004020757256  IS  t[1] the y value?
cout <<  t[2] <<endl;  //z result 0.6760032308798827    IS  t[2] the z value?


// euler angles e
e= RQDecomp3x3(R, mtxR,mtxQ,Qx, Qy, Qz);
cout <<  e[0] <<endl;  //x result 14.8789 
cout <<  e[1] <<endl;  //y result -49.178 
cout <<  e[2] <<endl;  //z result -20.6066