I've been experimenting with opencv to estimate the homography matrix between 2 images captured with my computer's webcam. I have noticed that when the 2 views are not very far apart (that's when I don't move my computer far away), when I warp the second image with my homography matrix, the warped image and the first image nearly overlap. But when the 2 views are very wide apart, warping the second image with the homography matrix that I estimated gives a view that is very different from that of the first image.
So my question is, why is that? are there conditions on the motion model of the camera between the 2 views that have to be met so that the homography estimation can be performed correctly?
And in very simple terms, what is a homography anyway? (In my understanding, an image is a 3D world projection on a certain 2D plane (the camera plane), a homography matrix allows us to project the 3D world on another plane by way of our first projection on the camera plane)

  • $\begingroup$ Is the scene planar? $\endgroup$ Jun 2, 2019 at 16:31
  • $\begingroup$ @PeterCorke The scene contains planes like the surface of the wall, but it contains bumps too $\endgroup$
    – S.E.K.
    Jun 2, 2019 at 16:58
  • $\begingroup$ Homography assumes the scene is a perfect plane $\endgroup$ Jun 2, 2019 at 18:01
  • $\begingroup$ @PeterCorke If this is the case, then homographies are a really limited tool because real scenes not planar. Are there conditions on the camera angle with regard to the plane? (Perpendicular,...?) $\endgroup$
    – S.E.K.
    Jun 2, 2019 at 18:13
  • $\begingroup$ No constraints on the angle, but you need to ensure that you correct for lens distortion. Yes, they are limited but nevertheless there many useful applications. $\endgroup$ Jun 2, 2019 at 20:10


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.