Projective Geometry and Transformations of 2D

(i) Affine Transformations

Recall from (2.10) an affinity is defined as

\[\begin{split}\mathbf{x}' = \mathbf{H}_A \mathbf{x} = \begin{bmatrix} \mathbf{A} & \mathbf{t}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} \mathbf{x} = \begin{bmatrix} a_{11} & a_{12} & t_x\\ a_{21} & a_{22} & t_y\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y\\ z \end{bmatrix} = \begin{bmatrix} a_{11} x + a_{12} y + t_x z\\ a_{21} x + a_{22} y + t_y z\\ z \end{bmatrix} = \begin{bmatrix} x'\\ y'\\ z' \end{bmatrix}.\end{split}\]

Observe that

\[\begin{split}\mathbf{H}_A^{-1} = \left( \begin{bmatrix} 1 & 0 & t_x\\ 0 & 1 & t_y\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} a_{11} & a_{12} & 0\\ a_{21} & a_{22} & 0\\ 0 & 0 & 1 \end{bmatrix} \right)^{-1} = \frac{1}{a_{11} a_{22} - a_{12} a_{21}} \begin{bmatrix} a_{22} & -a_{12} & 0\\ -a_{21} & a_{11} & 0\\ 0 & 0 & a_{11} a_{22} - a_{12} a_{21} \end{bmatrix} \begin{bmatrix} 1 & 0 & -t_x\\ 0 & 1 & -t_y\\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} \mathbf{A}' & \mathbf{t}'\\ \boldsymbol{0} & 1 \end{bmatrix}.\end{split}\]

An affinity is degenerate when \(a_{11} a_{22} = a_{12} a_{21}\) i.e. its columns are linearly dependent.

(a)

By inspection, a degenerate affinity collapses all the points on a conic section into a single line or point. The rest of the analysis will focus on non-degenerate affinities.

The equation of a conic (2.3) in homogeneous coordinates is

\[\begin{split}\mathbf{x}^\top \mathbf{C} \mathbf{x} = \mathbf{x}^\top \begin{bmatrix} a & b / 2 & d / 2\\ b / 2 & c & e / 2\\ d / 2 & e / 2 & f \end{bmatrix} \mathbf{x}.\end{split}\]

The type of conic section can be determined by computing the minor \(\det \mathbf{C}_{33}\):

  • \(\mathbf{C}\) is a hyperbola if and only if \(\det \mathbf{C}_{33} < 0\),

  • \(\mathbf{C}\) is a parabola if and only if \(\det \mathbf{C}_{33} = 0\), and

  • \(\mathbf{C}\) is an ellipse if and only if \(\det \mathbf{C}_{33} > 0\).

    • When \(a = c\) and \(b = 0\), the equation represents a circle.

To simplify notations, rewrite the conic coefficient matrix as

\[\begin{split}\mathbf{C} = \begin{bmatrix} \boldsymbol{\alpha} & \boldsymbol{\beta}\\ \boldsymbol{\beta}^\top & \gamma \end{bmatrix}\end{split}\]

where \(\boldsymbol{\alpha} = \begin{bmatrix} a & b / 2\\ b / 2 & c \end{bmatrix}\), \(\boldsymbol{\beta} = \begin{bmatrix} d / 2\\ e / 2 \end{bmatrix}\), and \(\gamma = f\). Under an affinity, a conic transforms to

\[\begin{split}\mathbf{x}^\top \mathbf{C}_c \mathbf{x} = {\mathbf{x}'}^\top \mathbf{H}_A^{-\top} \mathbf{C}_c \mathbf{H}_A^{-1} \mathbf{x}' = {\mathbf{x}'}^\top \begin{bmatrix} {\mathbf{A}'}^\top \boldsymbol{\alpha} \mathbf{A}' & {\mathbf{A}'}^\top \boldsymbol{\alpha} \mathbf{t}' + {\mathbf{A}'}^\top \boldsymbol{\beta}\\ {\mathbf{t}'}^\top \boldsymbol{\alpha} \mathbf{A}' + \boldsymbol{\beta}^\top \mathbf{A}' & {\mathbf{t}'}^\top \boldsymbol{\alpha} \mathbf{t}' + 2 {\mathbf{t}'}^\top \boldsymbol{\beta} + \gamma \end{bmatrix} \mathbf{x}' = {\mathbf{x}'}^\top \mathbf{C}' \mathbf{x}'.\end{split}\]

Assuming \(\det \mathbf{C} > 0\),

\[\begin{split}\det \mathbf{C}'_{33} &= \det \begin{bmatrix} a'_{11} \left( a a'_{11} + \frac{b}{2} a'_{21} \right) + a'_{21} \left( \frac{b}{2} a'_{11} + c a'_{21} \right) & a'_{11} \left( a a'_{12} + \frac{b}{2} a'_{22} \right) + a'_{21} \left( \frac{b}{2} a'_{12} + c a'_{22} \right)\\ a'_{12} \left( a a'_{11} + \frac{b}{2} a'_{21} \right) + a'_{22} \left( \frac{b}{2} a'_{11} + c a'_{21} \right) & a'_{12} \left( a a'_{12} + \frac{b}{2} a'_{22} \right) + a'_{22} \left( \frac{b}{2} a'_{12} + c a'_{22} \right)\\ \end{bmatrix}\\ &= \det({\mathbf{A}'}^\top \boldsymbol{\alpha} \mathbf{A}')\\ &= \det({\mathbf{A}'}^\top) \det(\boldsymbol{\alpha}) \det(\mathbf{A}')\\ &= \det(\mathbf{A}')^2 \det(\boldsymbol{\alpha})\\ &= \det(\mathbf{A}')^2 \left( ac - \frac{b^2}{4} \right)\\ &> 0.\end{split}\]

Thus, an affinity can map a circle to an ellipse, but it cannot map an ellipse to a parabola or hyperbola.

(b)

Any pair of points on a line \(\mathbf{l}\) can be represented as

\[\mathbf{x}_2 - \mathbf{x}_1 = \lambda \mathbf{d}\]

where the scalar \(\lambda \in \mathbb{R}\) and the direction \(\mathbf{d} \in \mathbb{R}^3\). Note that the direction vector satisfies \(\mathbf{d}^\top \mathbf{l} = 0\) and \(\left\Vert \mathbf{d} \right\Vert_2 = 1\). Evidently, any line \(\mathbf{l}'\) parallel to \(\mathbf{l}\) must have the same direction vector. Let \(\mathbf{x}'_2 - \mathbf{x}'_1 = \lambda' \mathbf{d}\) denote the corresponding line segment on \(\mathbf{l}'\).

The ratio of these parallel line segments is

\[\frac{ \left\Vert \mathbf{x}_2 - \mathbf{x}_1 \right\Vert_2 }{ \left\Vert \mathbf{x}'_2 - \mathbf{x}'_1 \right\Vert_2 } = \frac{ \lambda \left\Vert \mathbf{d} \right\Vert_2 }{ \lambda' \left\Vert \mathbf{d} \right\Vert_2 } = \frac{\lambda}{\lambda'}.\]

The ratio of these line segments under an affinity is

\[\frac{ \left\Vert \mathbf{H}_A (\mathbf{x}_2 - \mathbf{x}_1) \right\Vert_2 }{ \left\Vert \mathbf{H}_A (\mathbf{x}'_2 - \mathbf{x}'_1) \right\Vert_2 } = \frac{ \lambda \left\Vert \mathbf{H}_A \mathbf{d} \right\Vert_2 }{ \lambda' \left\Vert \mathbf{H}_A \mathbf{d} \right\Vert_2 } = \frac{\lambda}{\lambda'}.\]

Therefore, the ratio of lengths on parallel line segments is invariant to affinities. Clearly, when the line segments are not parallel, the direction vectors are no longer equal. Hence the ratio is no longer invariant to affinities. Note that projectivities map lines to lines, but do not necessarily preserve parallelism.

(ii) Projective Transformations

Let \(\mathbf{x}\) denote a point on a unit circle at the origin (example 2.28) such that

\[\begin{split}0 = \mathbf{x}^\top \mathbf{C} \mathbf{x} = \mathbf{x}^\top \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & -1 \end{bmatrix} \mathbf{x} = \mathbf{x}^\top \begin{bmatrix} \mathbf{I} & \boldsymbol{0}\\ \boldsymbol{0}^\top & -1 \end{bmatrix} \mathbf{x} = \mathbf{x}^\top \mathbf{S}_3 \mathbf{x}.\end{split}\]

From result 2.13, a projectivity (2.13) that fixes as a set a unit circle at the origin must satisfy (result 2.13)

\[\mathbf{C}' = \mathbf{H}^{-\top} \mathbf{C} \mathbf{H}^{-1} = \mathbf{H}^{-\top} \mathbf{S}_3 \mathbf{H}^{-1} = \mathbf{S}_3\]

where according to (2.17)

\[\begin{split}\mathbf{H}^{-1} = \mathbf{H}_P^{-1} \mathbf{H}_A^{-1} \mathbf{H}_S^{-1} = \begin{bmatrix} \mathbf{I} & \boldsymbol{0}\\ \mathbf{v}^\top & 1 \end{bmatrix} \begin{bmatrix} K & \boldsymbol{0}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} \begin{bmatrix} s \mathbf{R} & \mathbf{t}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} = \begin{bmatrix} s K \mathbf{R} & K \mathbf{t}\\ s \mathbf{v}^\top K \mathbf{R} & \mathbf{v}^\top K \mathbf{t} + 1 \end{bmatrix}.\end{split}\]

These properties imply

\[\begin{split}\mathbf{H}_P^{-\top} \mathbf{S}_3 \mathbf{H}_P^{-1} = \begin{bmatrix} \mathbf{I} & \mathbf{v}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} \begin{bmatrix} \mathbf{I} & \boldsymbol{0}\\ \boldsymbol{0}^\top & -1 \end{bmatrix} \begin{bmatrix} \mathbf{I} & \boldsymbol{0}\\ \mathbf{v}^\top & 1 \end{bmatrix} = \begin{bmatrix} \mathbf{I} - \mathbf{v} \mathbf{v}^\top & -\mathbf{v}\\ -\mathbf{v}^\top & -1 \end{bmatrix} = \mathbf{S}_3 \quad \Rightarrow \quad \mathbf{v} = \boldsymbol{0},\end{split}\]
\[\begin{split}\mathbf{H}_A^{-\top} \mathbf{S}_3 \mathbf{H}_A^{-1} = \begin{bmatrix} K^\top & \boldsymbol{0}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} \begin{bmatrix} \mathbf{I} & \boldsymbol{0}\\ \boldsymbol{0}^\top & -1 \end{bmatrix} \begin{bmatrix} K & \boldsymbol{0}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} = \begin{bmatrix} K^\top K & \boldsymbol{0}\\ \boldsymbol{0}^\top & -1 \end{bmatrix} = \mathbf{S}_3 \quad \Rightarrow \quad K^\top K = \mathbf{I},\end{split}\]

and

\[\begin{split}\mathbf{H}_S^{-\top} \mathbf{S}_3 \mathbf{H}_S^{-1} = \begin{bmatrix} s \mathbf{R}^\top & \boldsymbol{0}\\ \mathbf{t}^\top & 1 \end{bmatrix} \begin{bmatrix} \mathbf{I} & \boldsymbol{0}\\ \boldsymbol{0}^\top & -1 \end{bmatrix} \begin{bmatrix} s \mathbf{R} & \mathbf{t}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} = \begin{bmatrix} s \mathbf{R}^\top \mathbf{R} & s \mathbf{R}^\top \mathbf{t}\\ s \mathbf{t}^\top \mathbf{R} & \mathbf{t}^\top \mathbf{t} - 1 \end{bmatrix} = \mathbf{S}_3 \quad \Rightarrow \quad s^2 \mathbf{R}^\top \mathbf{R} = \mathbf{I} \quad \land \quad \mathbf{t}^\top = \boldsymbol{0}.\end{split}\]

Hence,

\[\begin{split}\mathbf{H}^{-1} = \begin{bmatrix} s K \mathbf{R} & \boldsymbol{0}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} = \begin{bmatrix} k_1 s \cos \theta & k_1 (-s) \sin \theta & 0\\ k_2 s \sin \theta & k_2 s \cos \theta & 0\\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} \alpha & 0 & 0\\ 0 & \beta & 0\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \cos \theta & -\sin \theta & 0\\ \sin \theta & \cos \theta & 0\\ 0 & 0 & 1 \end{bmatrix}\end{split}\]

where \(\alpha = k_1 s = \pm 1\), \(\beta = k_2 s = \pm 1\), and \(\theta \in \mathbb{R}\) represent a three-parameter family of projective transformations. The factorized form of this family illustrates that the projectivities are restricted to combinations of rotations and reflections.

(iii) Isotropies

[Bae] has an intuitive way to remember the degrees of points, lines, and planes.

A line in 3D space can be specified by two 3D points. However, once the line is constrained by the points, the points can still move along the line. Thus, one degree of freedom is retained per point. Since a point in 3D has three degrees of freedom, the total number of degrees of freedom used to nail down the line is \(2 \times 3 - 2 \times 1 = 4\).

A plane is fully constrained by three 3D points, but the points are free to roam the plane; this motion has two degrees of freedom. Hence a plane has \(3 \times 3 - 3 \times 2 = 3\) degrees of freedom.

A line can also be specified as the intersection of two planes. Once the line has been found, the planes can freely rotate about the line; this rotation has one degree of freedom. Therefore, a line has \(2 \times 3 - 2 \times 1 = 4\) degrees of freedom.

Two Lines Have an Invariant Under a Similarity

Define a line segment on \(\mathbf{l}_i\) as

\[\mathbf{y}_i - \mathbf{x}_i = t_i \mathbf{d}_i\]

where the scalar \(t_i \in \mathbb{R}\), the direction \(\mathbf{d}_i \in \mathbb{R}^3\), \(\mathbf{d}_i^\top \mathbf{l}_i = 0\), and \(\left\Vert \mathbf{d}_i \right\Vert_2 = 1\) for \(i = 1, 2\).

The angle between these line segments is given by their dot product

\[\cos \theta = \frac{ (\mathbf{y}_1 - \mathbf{x}_1)^\top (\mathbf{y}_2 - \mathbf{x}_2) }{ \left\Vert \mathbf{y}_1 - \mathbf{x}_1 \right\Vert_2 \left\Vert \mathbf{y}_2 - \mathbf{x}_2 \right\Vert_2 } = \frac{ t_1 t_2 \mathbf{d}_1^\top \mathbf{d}_2 }{ t_1 \left\Vert \mathbf{d}_1 \right\Vert_2 t_2 \left\Vert \mathbf{d}_2 \right\Vert_2 } = \mathbf{d}_1^\top \mathbf{d}_2.\]

Let \(\mathbf{H}_S\) denote a similarity (2.9) where

\[\begin{split}\mathbf{x}' = \mathbf{H}_S \mathbf{x} = \begin{bmatrix} s \mathbf{R} & \mathbf{t}\\ \boldsymbol{0}^\top & 1 \end{bmatrix} \mathbf{x}.\end{split}\]

Recall that the last coordinate of \(\mathbf{d}_i\) is zero and \(\mathbf{R}^\top \mathbf{R} = \mathbf{I}\).

\[\cos \theta = \frac{ (t_1 \mathbf{H}_S \mathbf{d}_1)^\top (t_2 \mathbf{H}_S \mathbf{d}_2) }{ \left\Vert t_1 \mathbf{H}_S \mathbf{d}_1 \right\Vert_2 \left\Vert t_2 \mathbf{H}_S \mathbf{d}_2 \right\Vert_2 } = \frac{ t_1 t_2 \left( s \mathbf{R} \mathbf{d}_{1_{1 \colon 2}} \right)^\top \left( s \mathbf{R} \mathbf{d}_{2_{1 \colon 2}} \right) }{ t_1 \left\Vert s \mathbf{R} \mathbf{d}_{1_{1 \colon 2}} \right\Vert_2 t_2 \left\Vert s \mathbf{R} \mathbf{d}_{2_{1 \colon 2}} \right\Vert_2 } = \mathbf{d}_1^\top \mathbf{d}_2.\]

Therefore, the angle between two lines is invariant under a similarity. Hence the number of invariants is undoubtedly at least one, which violates the equality case of the counting argument in result 2.16 because

\[\text{DoF}(\mathbf{l}_1) + \text{DoF}(\mathbf{l}_2) - \text{DoF}(\mathbf{H}_S) = 2 + 2 - 4 = 0.\]

The following will show that the similarity can only be partially determined.

Under this point transformation, lines transform according to (2.6)

\[\mathbf{l}' = \mathbf{H}_S^{-\top} \mathbf{l} \quad \Leftrightarrow \quad \mathbf{l} = \mathbf{H}_S^\top \mathbf{l}'.\]

Given the corresponding lines \(\mathbf{l}'_1\) and \(\mathbf{l}'_2\), observe that

\[\begin{split}\begin{aligned} \lambda_i \begin{bmatrix} a_i\\ b_i\\ c_i \end{bmatrix} &= \lambda'_i \begin{bmatrix} s r_1 & s r_2 & 0\\ -s r_2 & s r_1 & 0\\ t_x & t_y & 1\\ \end{bmatrix} \begin{bmatrix} a'_i\\ b'_i\\ c'_i \end{bmatrix} \end{aligned} \quad \Leftrightarrow \quad \begin{aligned} \lambda_i a_i &= s \lambda'_i \left( r_1 a'_i + r_2 b'_i \right)\\ \lambda_i b_i &= s \lambda'_i \left( -r_2 a'_i + r_1 b'_i \right)\\ \lambda_i c_i &= \lambda'_i \left( t_x a'_i + t_y b'_i + c'_i \right) \end{aligned} \quad \Leftrightarrow \quad \begin{aligned} \begin{bmatrix} a_1 c'_1\\ b_1 c'_1\\ a_2 c'_2\\ b_2 c'_2 \end{bmatrix} &= \begin{bmatrix} a'_1 c_1 & b'_1 c_1 & -a_1 a'_1 & -a_1 b'_1\\ b'_1 c_1 & -a'_1 c_1 & -b_1 a'_1 & -b_1 b'_1\\ a'_2 c_2 & b'_2 c_2 & -a_2 a'_2 & -a_2 b'_2\\ b'_2 c_2 & -a'_2 c_2 & -b_2 a'_2 & -b_2 b'_2 \end{bmatrix} \begin{bmatrix} s r_1\\ s r_2\\ t_x\\ t_y \end{bmatrix} \end{aligned}\end{split}\]

where \(r_1 = \cos \theta\) and \(r_2 = \sin \theta\).

Observe that the \(4 \times 4\) matrix is rank deficient: its rank is only 3. If there is one more line correspondence, the full rank matrix would allow the translation \(\mathbf{t}\) to be determined exactly, but the rotation and scalar \(s\) can only be recovered up to a sign via \((s r_1)^2 + (s r_2)^2 = s^2\).

Two Lines and Two Points Have an Invariant Under a Projectivity

Let \(\mathbf{l}_1, \mathbf{l}_2, \mathbf{x}_1, \mathbf{x}_2\) denote the pair of lines and points. The line through the two given points is \(\mathbf{l}_0 = \mathbf{x}_1 \times \mathbf{x}_2\) (result 2.4). This line will intersect the two given lines at \(\mathbf{x}_3 = \mathbf{l}_0 \times \mathbf{l}_1\) and \(\mathbf{x}_4 = \mathbf{l}_0 \times \mathbf{l}_2\) (result 2.2). To simplify the proof, arbitrarily define all points on \(\mathbf{l}_0\) in terms of \(\mathbf{x}_1\) such that

\[\mathbf{x}_i = \mathbf{x}_1 + t_i \mathbf{d} \quad i = 1, 2, 3, 4\]

where \(t_i \in \mathbb{R}\) and \(\mathbf{d}^\top \mathbf{l}_0 = 0\) e.g. \(\mathbf{d} = \frac{\mathbf{x}_4 - \mathbf{x}_1}{\left\Vert \mathbf{x}_4 - \mathbf{x}_1 \right\Vert_2}\).

The cross ratio (2.18) of these points is

\[\text{Cross}(\mathbf{x}_1, \mathbf{x}_2, \mathbf{x}_3, \mathbf{x}_4) = \frac{ \left\Vert \mathbf{x}_1 - \mathbf{x}_2 \right\Vert_2 \left\Vert \mathbf{x}_3 - \mathbf{x}_4 \right\Vert_2 }{ \left\Vert \mathbf{x}_1 - \mathbf{x}_3 \right\Vert_2 \left\Vert \mathbf{x}_2 - \mathbf{x}_4 \right\Vert_2 } = \frac{ \left\Vert -t_2 \mathbf{d} \right\Vert_2 \left\Vert (t_3 - t_4) \mathbf{d} \right\Vert_2 }{ \left\Vert -t_3 \mathbf{d} \right\Vert_2 \left\Vert (t_2 - t_4) \mathbf{d} \right\Vert_2 } = \frac{ t_2 (t_3 - t_4) }{ t_3 (t_2 - t_4) }.\]

The cross ratio of these points under a projectivity (2.13) is

\[\text{Cross}(\mathbf{x}'_1, \mathbf{x}'_2, \mathbf{x}'_3, \mathbf{x}'_4) = \frac{ \left\Vert \mathbf{H}_P (\mathbf{x}_1 - \mathbf{x}_2) \right\Vert_2 \left\Vert \mathbf{H}_P (\mathbf{x}_3 - \mathbf{x}_4) \right\Vert_2 }{ \left\Vert \mathbf{H}_P (\mathbf{x}_1 - \mathbf{x}_3) \right\Vert_2 \left\Vert \mathbf{H}_P (\mathbf{x}_2 - \mathbf{x}_4) \right\Vert_2 } = \frac{ \left\Vert -t_2 \mathbf{H}_P \mathbf{d} \right\Vert_2 \left\Vert (t_3 - t_4) \mathbf{H}_P \mathbf{d} \right\Vert_2 }{ \left\Vert -t_3 \mathbf{H}_P \mathbf{d} \right\Vert_2 \left\Vert (t_2 - t_4) \mathbf{H}_P \mathbf{d} \right\Vert_2 } = \frac{ t_2 (t_3 - t_4) }{ t_3 (t_2 - t_4) }.\]

Thus, the cross ratio of the intersection points defined by a pair of lines and points is invariant under a projectivity. Therefore, the number of invariants is undoubtedly at least one, which violates the equality case of the counting argument in result 2.16 because

\[\text{DoF}(\mathbf{l}_1) + \text{DoF}(\mathbf{l}_2) + \text{DoF}(\mathbf{x}_1) + \text{DoF}(\mathbf{x}_2) - \text{DoF}(\mathbf{H}_S) = 2 + 2 + 2 + 2 - 8 = 0.\]

The following will show that the projectivity \(\mathbf{H}\) (2.5) can only be partially determined.

Given the corresponding lines and points \(\mathbf{l}'_1, \mathbf{l}'_2, \mathbf{x}'_1, \mathbf{x}'_2\), observe that

\[\begin{split}\begin{aligned} \tilde{\lambda}'_i &= \tilde{\lambda}_i \begin{bmatrix} x'_i\\ y'_i\\ z'_i \end{bmatrix} \begin{bmatrix} h_1 & h_2 & h_3\\ h_4 & h_5 & h_6\\ h_7 & h_8 & h_9 \end{bmatrix} \begin{bmatrix} x_i\\ y_i\\ z_i \end{bmatrix} \end{aligned} \quad \Leftrightarrow \quad \begin{aligned} \tilde{\lambda}'_i x'_i &= \tilde{\lambda}_i \left( h_1 x_i + h_2 y_i + h_3 z_i \right)\\ \tilde{\lambda}'_i y'_i &= \tilde{\lambda}_i \left( h_4 x_i + h_5 y_i + h_6 z_i \right)\\ \tilde{\lambda}'_i z'_i &= \tilde{\lambda}_i \left( h_7 x_i + h_8 y_i + h_9 z_i \right) \end{aligned}\end{split}\]

and

\[\begin{split}\begin{aligned} \lambda_i \begin{bmatrix} a_i\\ b_i\\ c_i \end{bmatrix} &= \lambda'_i \begin{bmatrix} h_1 & h_4 & h_7\\ h_2 & h_5 & h_8\\ h_3 & h_6 & h_9 \end{bmatrix} \begin{bmatrix} a'_i\\ b'_i\\ c'_i \end{bmatrix} \end{aligned} \quad \Leftrightarrow \quad \begin{aligned} \lambda_i a_i &= \lambda'_i \left( h_1 a'_i + h_4 b'_i + h_7 c'_i \right)\\ \lambda_i b_i &= \lambda'_i \left( h_2 a'_i + h_5 b'_i + h_8 c'_i \right)\\ \lambda_i c_i &= \lambda'_i \left( h_3 a'_i + h_6 b'_i + h_9 c'_i \right) \end{aligned}\end{split}\]

where \(\left\Vert \mathbf{H} \right\Vert_F = 1\). An equivalent representation is

\[\begin{split}\begin{bmatrix} z'_1 x_1 & z'_1 y_1 & z'_1 z_1 & 0 & 0 & 0 & -x'_1 x_1 & -x'_1 y_1 & -x'_1 z_1\\ 0 & 0 & 0 & z'_1 x_1 & z'_1 y_1 & z'_1 z_1 & -y'_1 x_1 & -y'_1 y_1 & -y'_1 z_1\\ z'_2 x_2 & z'_2 y_2 & z'_2 z_2 & 0 & 0 & 0 & -x'_2 x_2 & -x'_2 y_2 & -x'_2 z_2\\ 0 & 0 & 0 & z'_2 x_2 & z'_2 y_2 & z'_2 z_2 & -y'_2 x_2 & -y'_2 y_2 & -y'_2 z_2\\ c_1 a'_1 & 0 & -a_1 a'_1 & c_1 b'_1 & 0 & -a_1 b'_1 & c_1 c'_1 & 0 & -a_1 c'_1\\ 0 & c_1 a'_1 & -b_1 a'_1 & 0 & c_1 b'_1 & -b_1 b'_1 & 0 & c_1 c'_1 & -b_1 c'_1\\ c_2 a'_2 & 0 & -a_2 a'_2 & c_2 b'_2 & 0 & -a_2 b'_2 & c_2 c'_2 & 0 & -a_2 c'_2\\ 0 & c_2 a'_2 & -b_2 a'_2 & 0 & c_2 b'_2 & -b_2 b'_2 & 0 & c_2 c'_2 & -b_2 c'_2 \end{bmatrix} \begin{bmatrix} h_1\\ h_2\\ h_3\\ h_4\\ h_5\\ h_6\\ h_7\\ h_8\\ h_9 \end{bmatrix} = \boldsymbol{0}.\end{split}\]

Observe that the \(8 \times 9\) matrix only has a rank 7 plus the explicit Frobenius norm constraint. If there is one more line or point correspondence, the matrix would have a rank 8 plus the norm constraint.

(iv) Invariants

(a)

Recall that

\[\mathbf{x}'_i = \mathbf{H} \mathbf{x}_i \quad \text{(2.5)}\]
\[\mathbf{l}'_i = \mathbf{H}^{-\top} \mathbf{l}_i \quad \text{(2.6)}\]

for \(i = 1, 2\) and any non-singular projectivity \(\mathbf{H}\).

Observe that

\[\frac{ \left( {\mathbf{l}'}_1^\top \mathbf{x}'_1 \right) \left( {\mathbf{l}'}_2^\top \mathbf{x}'_2 \right) }{ \left( {\mathbf{l}'}_1^\top \mathbf{x}'_2 \right) \left( {\mathbf{l}'}_2^\top \mathbf{x}'_1 \right) } = \frac{ \left( \mathbf{l}_1^\top \mathbf{H}^{-1} \mathbf{H} \mathbf{x}_1 \right) \left( \mathbf{l}_2^\top \mathbf{H}^{-1} \mathbf{H} \mathbf{x}_2 \right) }{ \left( \mathbf{l}_1^\top \mathbf{H}^{-1} \mathbf{H} \mathbf{x}_2 \right) \left( \mathbf{l}_2^\top \mathbf{H}^{-1} \mathbf{H} \mathbf{x}_1 \right) } = \frac{ \left( \mathbf{l}_1^\top \mathbf{x}_1 \right) \left( \mathbf{l}_2^\top \mathbf{x}_2 \right) }{ \left( \mathbf{l}_1^\top \mathbf{x}_2 \right) \left( \mathbf{l}_2^\top \mathbf{x}_1 \right) }.\]

(b)

As shown in result 2.13, under a point transformation \(\mathbf{H}\), a conic \(\mathbf{C}\) transforms to

\[\mathbf{C}' = \mathbf{H}^{-\top} \mathbf{C} \mathbf{H}^{-1}.\]

Observe that

\[\frac{ \left( {\mathbf{x}'}_1^\top \mathbf{C}' \mathbf{x}'_2 \right)^2 }{ \left( {\mathbf{x}'}_1^\top \mathbf{C}' \mathbf{x}'_1 \right) \left( {\mathbf{x}'}_2^\top \mathbf{C}' \mathbf{x}'_2 \right) } = \frac{ \left( \mathbf{x}_1 \mathbf{H}^\top \mathbf{H}^{-\top} \mathbf{C} \mathbf{H}^{-1} \mathbf{H} \mathbf{x}_2 \right)^2 }{ \left( \mathbf{x}_1 \mathbf{H}^\top \mathbf{H}^{-\top} \mathbf{C} \mathbf{H}^{-1} \mathbf{H} \mathbf{x}_1 \right) \left( \mathbf{x}_2 \mathbf{H}^\top \mathbf{H}^{-\top} \mathbf{C} \mathbf{H}^{-1} \mathbf{H} \mathbf{x}_2 \right) } = \frac{ \left( \mathbf{x}_1 \mathbf{C} \mathbf{x}_2 \right)^2 }{ \left( \mathbf{x}_1 \mathbf{C} \mathbf{x}_1 \right) \left( \mathbf{x}_2 \mathbf{C} \mathbf{x}_2 \right) }.\]

(c)

As illustrated in Chapter 18 of [RG11], Laguerre’s formula can be used to obtain the Euclidean angle between two lines that is invariant to the projective frame.

Let \(\mathbf{I} = \begin{bmatrix} 1 & i & 0 \end{bmatrix}^\top\) and \(\mathbf{J} = \begin{bmatrix} 1 & -i & 0 \end{bmatrix}^\top\) denote the ideal circular points. Let \(\mathbf{l}_\infty = \begin{bmatrix} 0 & 0 & 1 \end{bmatrix}^\top\) represent the line at infinity. Define the intersection of the line at infinity and line \(\mathbf{l}_j\) for \(j = 1, 2\) (result 2.2) as

\[\mathbf{p}_j = \mathbf{l}_j \times \mathbf{l}_\infty = \begin{bmatrix} b_j & -a_j & 0 \end{bmatrix}^\top.\]

Observe that \(\mathbf{p}_j\) is normal (orthogonal) to \(\mathbf{l}_j\). By inspection, the angle of these two normal vectors is the angle between the two lines. Furthermore, scaling the normal vectors by a non-zero constant does not affect the angle. These observations allow the 2D normal vectors to be translated to two corresponding complex numbers

\[z_j = a_j + i b_j = r_j (\cos \theta_j + i \sin \theta_j) = r_j \exp i \theta_j \quad \land \quad \overline{z_j} = a_j - i b_j = r_j \exp -i \theta_j\]

without affecting the polar angle between them. Evidently, the angle \(\theta_1 - \theta_2\) modulo \(\pi\) is the desired Euclidean angle between the two lines, which can be extract from

\[\frac{z_1 \overline{z_2}}{\overline{z_1} z_2} = \frac{ r_1 \exp i \theta_1 \cdot r_2 \exp -i \theta_2 }{ r_1 \exp -i \theta_1 \cdot r_2 \exp i \theta_2 } = \exp 2i (\theta_1 - \theta_2).\]

Recall that there exists \(4! = 24\) definitions of the cross ratio, but only six distinct values are produced. Define the cross ratio to have the following ordering

\[\text{Cross}\left( \tilde{\mathbf{p}}_1, \tilde{\mathbf{p}}_2, \mathbf{I}, \mathbf{J} \right) = \frac{ \det \begin{bmatrix} \tilde{\mathbf{p}}_1 & \tilde{\mathbf{I}} \end{bmatrix} \det \begin{bmatrix} \tilde{\mathbf{p}}_2 & \tilde{\mathbf{J}} \end{bmatrix} }{ \det \begin{bmatrix} \tilde{\mathbf{p}}_1 & \tilde{\mathbf{J}} \end{bmatrix} \det \begin{bmatrix} \tilde{\mathbf{p}}_2 & \tilde{\mathbf{I}} \end{bmatrix} } = \frac{ (i b_1 + a_1) (-i b_2 + a_2) }{ (-i b_1 + a_1) (i b_2 + a_2) } = \frac{z_1 \overline{z_2}}{\overline{z_1} z_2}\]

where \(\tilde{\cdot}\) denotes the corresponding inhomogenous coordinates. Therefore,

\[\theta_1 - \theta_2 = \frac{1}{2i} \ln \text{Cross}\left( \mathbf{p}_1, \mathbf{p}_2, \mathbf{I}, \mathbf{J} \right).\]

(v) The Cross Ratio

Let \(\mathbf{x}_i \in \mathbb{R}^2\) for \(i = 1, \ldots, 4\) denote four collinear points on a line in homogeneous coordinates. Under a projectivity \(H \in \mathbb{R}^{2 \times 2}\), \(\mathbf{x}'_i = \lambda_i \mathbf{H} \mathbf{x}_i\).

Observe that

\[\begin{split}\det \begin{bmatrix} \mathbf{x}'_i & \mathbf{x}'_j \end{bmatrix} &= \det \begin{bmatrix} \lambda_i \mathbf{H} \mathbf{x}_i & \lambda_j \mathbf{H} \mathbf{x}_j \end{bmatrix}\\ &= \det \mathbf{H} \begin{bmatrix} \lambda_i \mathbf{x}_i & \lambda_j \mathbf{x}_j \end{bmatrix}\\ &= \det(\mathbf{H}) \left( \lambda_i \lambda_j \mathbf{x}_{i1} \mathbf{x}_{j2} - \lambda_i \lambda_j \mathbf{x}_{i2} \mathbf{x}_{j1} \right)\\ &= \lambda_i \lambda_j \det(\mathbf{H}) \begin{vmatrix} \mathbf{x}_i & \mathbf{x}_j \end{vmatrix}.\end{split}\]

Therefore, the cross ratio (2.18)

\[\begin{split}\text{Cross}\left( \mathbf{x}'_1, \mathbf{x}'_2, \mathbf{x}'_3, \mathbf{x}'_4 \right) &= \frac{ \begin{vmatrix} \mathbf{x}'_1 & \mathbf{x}'_2 \end{vmatrix} \begin{vmatrix} \mathbf{x}'_3 & \mathbf{x}'_4 \end{vmatrix} }{ \begin{vmatrix} \mathbf{x}'_1 & \mathbf{x}'_3 \end{vmatrix} \begin{vmatrix} \mathbf{x}'_2 & \mathbf{x}'_4 \end{vmatrix} }\\ &= \frac{ \lambda_1 \lambda_2 \det(\mathbf{H}) \begin{vmatrix} \mathbf{x}_1 & \mathbf{x}_2 \end{vmatrix} \cdot \lambda_3 \lambda_4 \det(\mathbf{H}) \begin{vmatrix} \mathbf{x}_3 & \mathbf{x}_4 \end{vmatrix} }{ \lambda_1 \lambda_3 \det(\mathbf{H}) \begin{vmatrix} \mathbf{x}_1 & \mathbf{x}_3 \end{vmatrix} \cdot \lambda_2 \lambda_4 \det(\mathbf{H}) \begin{vmatrix} \mathbf{x}_2 & \mathbf{x}_4 \end{vmatrix} }\\ &= \frac{ \begin{vmatrix} \mathbf{x}_1 & \mathbf{x}_2 \end{vmatrix} \begin{vmatrix} \mathbf{x}_3 & \mathbf{x}_4 \end{vmatrix} }{ \begin{vmatrix} \mathbf{x}_1 & \mathbf{x}_3 \end{vmatrix} \begin{vmatrix} \mathbf{x}_2 & \mathbf{x}_4 \end{vmatrix} }\\ &= \text{Cross}\left( \mathbf{x}_1, \mathbf{x}_2, \mathbf{x}_3, \mathbf{x}_4 \right).\end{split}\]

(vi) Polarity

As illustrated in Figure 2.19, polarity is a geometric relation between a point, line, and conic. Let \(\mathbf{C}\) denote an arbitrary conic (2.3). The polar of any given point \(\mathbf{x}\) with respect to \(\mathbf{C}\) is \(\mathbf{l} = \mathbf{C} \mathbf{x}\). Likewise, the pole of any given line \(\mathbf{m}\) with respect to \(\mathbf{C}\) is \(\mathbf{y} = \mathbf{C}^{-1} \mathbf{m}\).

Let \(\mathbf{l}_i\) where \(i = 1, 2\) denote different lines intersecting at a point \(\mathbf{y}\) inside the conic \(\mathbf{C}\). The pole of line \(\mathbf{l}_i\) is \(\mathbf{x}_i = \mathbf{C}^{-1} \mathbf{l}_i\).

From the definition of conjugate points, since \(\mathbf{y}\) is on the polar of \(\mathbf{x}_i\), \(\mathbf{x}_i\) is on the polar of \(\mathbf{y}\). Thus, the polar of \(\mathbf{y}\) is the line \(\mathbf{m}\) that goes through points \(\mathbf{x}_1\) and \(\mathbf{x}_2\) i.e.

\[\mathbf{m} = \mathbf{x}_1 \times \mathbf{x}_2 = \mathbf{C} \mathbf{y}.\]

(vii) Conics

[RG11] presents in definition 9.3 a more general method of determining internal and external points with respect to a conic.

For a \(3 \times 3\) symmetric matrix \(\mathbf{C}\) with \(\det \mathbf{C} \neq 0\), a point \(\mathbf{x}\) is inside the conic if the conic does not intersect the polar of \(\mathbf{x}\). If the polar intersects the conic in two (real) points, then the point \(\mathbf{x}\) is outside the conic.

(viii) Dual Conics

Recall that if \(\mathbf{l} = \mathbf{x} \times \mathbf{y}\), then

\[\left[ \mathbf{l} \right]_\times = \mathbf{y} \mathbf{x}^\top - \mathbf{x} \mathbf{y}^\top.\]

Let \(\mathbf{x}\) and \(\mathbf{y}\) denote the points at which line \(\mathbf{l}\) intersects the conic \(\mathbf{C}\).

\[\begin{split}\mathbf{C}^* = \left[ \mathbf{l} \right]_\times \mathbf{C} \left[ \mathbf{l} \right]_\times &= \left( \mathbf{y} \mathbf{x}^\top - \mathbf{x} \mathbf{y}^\top \right) \mathbf{C} \left( \mathbf{y} \mathbf{x}^\top - \mathbf{x} \mathbf{y}^\top \right)\\ &= \mathbf{y} \mathbf{x}^\top \mathbf{C} \mathbf{y} \mathbf{x}^\top - \mathbf{y} \mathbf{x}^\top \mathbf{C} \mathbf{x} \mathbf{y}^\top - \mathbf{x} \mathbf{y}^\top \mathbf{C} \mathbf{y} \mathbf{x}^\top + \mathbf{x} \mathbf{y}^\top \mathbf{C} \mathbf{x} \mathbf{y}^\top\\ &= \mathbf{y} \mathbf{x}^\top \mathbf{C} \mathbf{y} \mathbf{x}^\top + \mathbf{x} \mathbf{y}^\top \mathbf{C} \mathbf{x} \mathbf{y}^\top & \quad & (2.2)\\ &= \alpha \mathbf{y} \mathbf{x}^\top + \alpha \mathbf{x} \mathbf{y}^\top \quad \text{where} \quad \alpha = \mathbf{x}^\top \mathbf{C} \mathbf{y} = \mathbf{y}^\top \mathbf{C} \mathbf{x}.\end{split}\]

The rank of \(\mathbf{C}^*\) is

\[\text{rank}(\mathbf{C}^*) = \text{rank}(\mathbf{y} \mathbf{x}^\top + \mathbf{x} \mathbf{y}^\top) \leq \text{rank}(\mathbf{y} \mathbf{x}^\top) + \text{rank}(\mathbf{x} \mathbf{y}^\top) = 1 + 1 = 2.\]

Applying the duality principle (result 2.6) to the definition of degenerate conics shows that \(\mathbf{C}^*\) is a dual conic.

(ix) Special Projective Transformations

[Sch13] has a much better exposition on the concept of harmonic homology (see definition 2.2, Figure 6, Section 7).

When the points are related by a finite rotational symmetry of order \(n\), each point is on an axis of reflection. Let \(\mathbf{a}_i\) denote an axis of reflection in homogeneous coordinates with unit length. For each consecutive pair of axes \((i, j)\),

\[\mathbf{a}_i \times \mathbf{a}_j = \mathbf{c} = \mathbf{n} \sin \theta \quad \land \quad \mathbf{a}_i^\top \mathbf{a}_j = \cos \theta\]

where \(\mathbf{c}\) is the center of rotation, \(\theta = \frac{360}{n}\) is the angle between the axes, and \(\mathbf{n}\) is the axis of rotation.

The corresponding reflection matrix for each axis is

\[\mathbf{H}_i = \mathbf{I} - 2 \mathbf{a}_i \mathbf{a}_i^\top.\]

By inspection, \(\mathbf{H}_i = \mathbf{H}_i^\top\) and \(\mathbf{H}_i \mathbf{H}_i^\top = \mathbf{H}_i^\top \mathbf{H}_i = \mathbf{I}\). Observe that the product of any two reflection matrix is a rotation matrix because

\[\mathbf{H}_i \mathbf{H}_j \left( \mathbf{H}_i \mathbf{H}_j \right)^\top = \mathbf{H}_i \mathbf{H}_j \mathbf{H}_j^\top \mathbf{H}_i^\top = \mathbf{H}_i \mathbf{H}_i^\top = \mathbf{I}.\]

The angle of a rotation matrix can be computed according to [Hab]

\[\begin{split}\text{tr}\left( \mathbf{H}_i \mathbf{H}_j \right) &= \text{tr}\left( \mathbf{I} - 2 \mathbf{a}_i \mathbf{a}_i^\top - 2 \mathbf{a}_j \mathbf{a}_j^\top + 4 \mathbf{a}_i \mathbf{a}_i^\top \mathbf{a}_j \mathbf{a}_j^\top \right)\\ 1 + 2 \cos \phi &= 3 - 2 - 2 + 4 \cos^{2} \theta\\ \cos \phi &= -1 + 2 \cos^{2} \theta\\ &= \cos 2 \theta & \quad & \text{double-angle formula}.\end{split}\]

Let \(\mathbf{R} = \mathbf{H}_i \mathbf{H}_j\) denote a rotation formed by any consecutive pair of reflections. Recall that repeatedly applying the same rotation is equivalent to a single rotation representing the sum of the angles.

\[\mathbf{R}^n \implies n \phi = n \cdot 2 \theta = 2n \frac{360}{n} = 720.\]

Lastly, the center of rotation is an eigenvector because

\[\mathbf{R} \mathbf{c} = \mathbf{H}_i \mathbf{H}_j \mathbf{c} = \mathbf{H}_i \mathbf{c} = \mathbf{c}.\]

References

Bae

Andreas Baerentzen. Degrees of freedom. http://www.imm.dtu.dk/ janba/DOF.pdf. Accessed on 2016-12-09.

Hab

Howard Haber. Three-dimensional rotation matrices. http://scipp.ucsc.edu/ haber/ph216/rotation_12.pdf. Accessed on 2017-01-27.

RG11(1,2)

Jürgen Richter-Gebert. Perspectives on projective geometry: a guided tour through real and complex geometry. Springer Science & Business Media, 2011.

Sch13

John Schreiber. Reflections and Their Images. PhD thesis, Franklin & Marshall College, 2013.