2

Let $\rho : P(\mathbb{R^3}) \to P(\mathbb{R^3})$ be an homography, this is, a projective isomorphism induced from the isomorphism of vector spaces.

I'm trying to understand what information about $\rho$ do I get from knowing how it transforms points and lines.

For example, let's say $\rho$ transforms the point $(1:0:0)$ into $(0:1:0)$. Can I simply take:

$$\begin{bmatrix} 0 \\ 1 \\ 0 \\ \end{bmatrix} = \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix}. \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}$$

So that $h_{11}=0$, $h_{21}=\lambda$ and $h_{31}=0$? (Obviously $h_{ij}$ are coefficients of the matrix of $\rho$)

I'm guessing the answer is yes, but I'd like to be sure.

  • The main question is, if I have a line instead of a point, how does it work? For example, let $\sigma$ be a different homography that takes $x_0=0$ to $x_0+x_1=0$.

A brief description or the example worked out would be enough.

Thanks in advance!

G. Schiele
  • 1,316
  • 1
    $h_{21}$ needs to be nonzero (for example equal to $17$) , but not necessarily equal to $1$. Remember that $(0:1:0)=(0:17:0)$ . Also: your general matrix $\rho$ has certainly no reason to send $x_0=0$ to $x_0+x_1=0$. Why should it? – Georges Elencwajg Aug 31 '15 at 23:14
  • @GeorgesElencwajg Thanks, yes, I took everything to be on homogeneous coordinates, but I'll edit to make it clear. – G. Schiele Aug 31 '15 at 23:17
  • @GeorgesElencwajg I meant them to be two separate examples. I forgot to use different letters! Thanks again, I'll edit accordingly. – G. Schiele Aug 31 '15 at 23:19

1 Answers1

1

Can I simply take: $$\begin{bmatrix} 0 \\ 1 \\ 0 \\ \end{bmatrix} = \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix}. \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}$$

Almost. For a single point you can indeed use that equation. But if you have more than one point, then you have to remember that homogeneous coordinates are only defined up to a scalar factor, which might not be the same for both your points. So in general you'd rather write something like

$$\lambda\cdot\begin{bmatrix} 0 \\ 1 \\ 0 \\ \end{bmatrix} = \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix}\cdot \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}$$

Also see this post of mine about how to find the transformation matrix if you know four points and their images.

if I have a line instead of a point, how does it work?

These transformations preserve incidence, and incidence can be tested using the dot product: a point lies on a line if the dot product between their vectors is zero. So if you have a point $p$ and a line $l$, that incidence is $\langle l,p\rangle=l^T\cdot p =0$ if you treat $p$ and $l$ as a column vectors, and $l^T$ as the corresponding row vector. Now you expect the same result if you transform both point and line using some transformation. It turns out that if you apply $M$ to the point, you have to apply $(M^{-1})^T$ to the line, because then you have

$$\langle(M^{-1})^Tl,Mp\rangle=l^TM^{-1}Mp=l^Tp$$

so the left hand side of that equation is zero exactly if the right hand side is zero.

So you can use the same mechanism used for points in order to find the matrix mapping four lines to their images. If you then want to apply that transformation to points, you again have to invert and transpose. Or you just take the points of intersection between your lines, as computed by the cross product.

MvG
  • 42,596
  • Thanks MvG! But I'm not sure I follow the second part. Could you perhaps outline the example? – G. Schiele Aug 31 '15 at 23:57
  • @G.Schiele: You do as you did for points, mapping $(1:0:0)$ (for $1x_0+0x_1+0x_2=0$) to $(1:1:0)$ (for $1x_0+1x_1+0x_2=0$). To uniquely define the transformation you need three more such line pairs. The resulting matrix can be used to transform lines, and its transpose inverse can transform points. – MvG Sep 01 '15 at 00:00