Camera displacement from homography

Suppose I have a pair of overlapping images of a scene containing (a) planar object(s). Thanks to feature detection and matching I am able to estimate the Homography H between the two images. Is it possible to retrieve the camera displacement using H ?

I used the code provided in OpenCV’s demo on homography and the results I obtain for the displacement are not consistent especially regarding the translations. I used the following formulas to go from the homography H to the rotation and translation matrices (provided in the demo at OpenCV: Basic concepts of the homography explained with code) :

// Normalization to ensure that ||c1|| = 1

double norm = sqrt(,0)*,0) +,0)*,0) +,0)*,0));

H /= norm;

Mat c1 = H.col(0);

Mat c2 = H.col(1);

Mat c3 = c1.cross(c2);

Mat tvec = H.col(2);

Mat R(3, 3, CV_64F);

for (int i = 0; i < 3; i++)

{,0) =,0);,1) =,0);,2) =,0);


I guess my problem has to do with scaling factor,however, I have no idea how to estimate it.