A Deeper Understanding / Interpretation of Homographies

917 Views Asked by At

I currently understand that a homography matrix, which allows for a mapping between planes in 3-dimensions, is a $3\times3$ matrix of the following general form:

$$\begin{bmatrix} \vert & \vert & \vert \\ r_1 & r_2 & t \\ \vert & \vert & \vert \end{bmatrix}$$

In my class, we were introduced to the idea that a 2d homography has special cases including similarity transformations, affine transformations, and projective transformations.

Furthermore, the components of the $H$ matrix were broken up into four "quadrants".

$$H=\left[\begin{array}{c|c} \\[-1ex] \quad A\quad & t \\[-1ex]\\\hline V & v \end{array}\right]$$

Would someone be able to relate these transformations to the various elements in $H$?

For a similarity matrix, my understanding is that the image can only be rotated in the $xy$ plane, scaled, and translated. Thus a similarity $H$ matrix would have zeros for elements $h_{31}$ and $h_{32}$ and $1$ for $h_{33}$.

I am unclear how to interpret affine and projective transformations in this way, especially because their definitions are not as clear to me.

1

There are 1 best solutions below

0
On

projective transformations

Any matrix, usually excluding singular matrices (determinant zero). That's the most general case.

affine transformations

Preserve points at infinity, i.e. result has $z=0$ if and only if input has $z=0$. That is what you describe with $h_{31}=h_{32}=0$ and $h_{33}=1$, except that last coordinate $h_{33}$ can in fact be any non-zero value since a multiple of that matrix describes the same transformation. So you'd have $V=0$ and $v\neq0$.

It makes sense to view an affine transformation algebraically, on inhomogeneous coordinates:

$$x'=(h_{11}x + h_{12}y + h_{13})/h_{33}\\ y'=(h_{21}x + h_{22}y + h_{23})/h_{33}$$

Here you can see that $v$ serves as a global denominator, $t$ describes a translation and $A$ a linear 2d transformation.

similarity transformations

These are affine transformations which also preserve angles. For a rotation, the upper left $2\times2$ block $A$ would be a rotation matrix like $\begin{bmatrix}\cos\alpha&-\sin\alpha\\\sin\alpha&\cos\alpha\end{bmatrix}$. But for a similarity these may be scaled as well, so you'd get something of the form $A=\begin{bmatrix}a&-b\\b&a\end{bmatrix}$, together with $V=0$ and $v\neq 0$.