In the field of computer vision, any two images of the same planarsurface in space are related by a homography. This has many practical applications, such as image rectification, image registration, or computation of camera motion—rotation and translation—between two images. Once camera rotation and translation have been extracted from an estimated homography matrix, this information may be used for navigation, or to insert models of 3D objects into an image or video, so that they are rendered with the correct perspective and appear to have been part of the original scene.
We have two cameras a and b, looking at points in a plane. Passing from the projection of in b to the projection of in a: where and are the z coordinates of P in each camera frame and where the homography matrix is given by is the rotation matrix by which b is rotated in relation to a; t is the translation vector from a to b; n and d are the normal vector of the plane and the distance to the plane respectively. Ka and Kb are the cameras' intrinsic parametermatrices. The figure shows camera b looking at the plane at distance d. Note: From above figure, assuming as plane model, is the projection of vector along, and equal to. So. And we have where. This formula is only valid if camera b has no rotation and no translation. In the general case where and are the respective rotations and translations of camera a and b, and the homography matrix becomes where d is the distance of the camera b to the plane. The homography matrix can only be computed between images taken from the same camera shot at different angles. It doesn't matter what is present in the images. The matrix contains a warped form of the images.
When the image region in which the homography is computed is small or the image has been acquired with a large focal length, an affine homography is a more appropriate model of image displacements. An affine homography is a special type of a general homography whose last row is fixed to
Toolboxes
is a GPL C/C++ library for robust, non-linear homography estimation from matched point pairs.
OpenCV is a complete computer vision software library that has many routines related to homography estimation and re-projection.