Homography (computer vision)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
File:Hauck Neue Constructionen der Perspective fig1a.png
Geometrical setup for homography: stereo cameras O1 and O2 both pointed at X in epipolar geometry. Drawing from Neue Konstruktionen der Perspektive und Photogrammetrie by Hermann Guido Hauck (1845 — 1905)

In the field of computer vision, any two images of the same planar surface in space are related by a homography (assuming a pinhole camera model). This has many practical applications, such as image rectification, image registration, or camera motion—rotation and translation—between two images. Once camera resectioning has been done 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 (see Augmented reality).

3D plane to plane equation

[edit | edit source]

We have two cameras a and b, looking at points Pi in a plane. Passing from the projection bpi=(bui;bvi;1) of Pi in b to the projection api=(aui;avi;1) of Pi in a:

api=bziaziKaHabKb1bpi

where azi and bzi are the z coordinates of P in each camera frame and where the homography matrix Hab is given by

Hab=RtnTd.

R 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 from origin to the plane respectively. Ka and Kb are the cameras' intrinsic parameter matrices.

File:Homography-transl-bold.svg

The figure shows camera b looking at the plane at distance d. Note: From above figure, assuming nTPi+d=0 as plane model, nTPi is the projection of vector Pi along n, and equal to d. So t=t1=t(nTPid). And we have HabPi=RPi+t where Hab=RtnTd.

This formula is only valid if camera b has no rotation and no translation. In the general case where Ra,Rb and ta,tb are the respective rotations and translations of camera a and b, R=RaRbT and the homography matrix Hab becomes

Hab=RaRbT(Ra*RbT*tb+ta)nTd

where d is the distance of the camera b to the plane.

Affine homography

[edit | edit source]

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

h31=h32=0,h33=1.

See also

[edit | edit source]

References

[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

Toolboxes

[edit | edit source]
[edit | edit source]