homogeneous coordinates in arithmetic calculation

237 Views Asked by At

I am reading the paper Parameter-free Radial Distortion Correction with Centre of Distortion Estimation, which is available from the link http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.424.2661&rep=rep1&type=pdf.

enter image description here

In the equation $x_i^d = e + \lambda_i(x_i^u - e) $, it seems that $x_i^d$ and $x_i^u$ are represented in homogeneous coordinates.

Can arithmetic calculation apply to homogeneous coordinates? Is there any rule to obey when such calculation is applied?. In the equation, the third component of homogeneous coordinates is all 1. If multiplying the expression on the left by $[e]_x$, how the calculation is applied?

1

There are 1 best solutions below

4
On

Those homogeneous coordinate vectors are just elements of $\mathbb R^3$, so you can certainly perform all sorts of operations with them. They wouldn’t be of much use otherwise. You need to be a bit careful about some things, though. For instance, the midpoint of $\mathbf p$ and $\mathbf q$ isn’t simply $\frac12(\mathbf p+\mathbf q)$ as it is when you use inhomogeneous coordinates. Nevertheless linear combinations of points are meaningful. For example, the line through the point $\mathbf p$ and $\mathbf q$ is the set of all nonzero linear combinations $\lambda\mathbf p+\mu\mathbf q$.

Keep in mind that the last coordinate of a homogeneous coordinate vector that represents a finite point isn’t necessarily equal to $1$: $(x,y,1)$ and $(kx,ky,k)$ represent the same point for all $k\ne0$. When using homogeneous coordinates, we’re really dealing with equivalence classes of elements of $\mathbb R^3$. In order to avoid clutter, explicit notation of these equivalence classes is suppressed, so that when you see an equation generally speaking it must be interpreted in terms of equality of equivalence classes. For example, $\mathbf x_i^u=\mathtt H\mathbf x_i^c$ doesn’t literally mean that the homogeneous coordinate vector obtained by multiplying $\mathbf x_i^c$ by $\mathtt H$ is identical to $\mathbf x_i^u$—for a general homography, the last coordinate of this product won’t usually be equal to $1$—but that they are members of the same equivalence class, i.e., that the coordinate vector $\mathbf x_i^u$ is scalar multiple of $\mathtt H\mathbf x_i^c$.

The equation $\mathbf x_i^d = \mathbf e+\lambda_i(\mathbf x_i^u-\mathbf e)$ says that $\mathbf x_i^d$ lies somewhere on the line through $\mathbf e$ and $\mathbf x_i^u$. If we use the normalized homogeneous coordinates of these point (with last coordinate equal to $1$), then this expression works exactly like it would with inhomogeneous Cartesian coordinates: the parenthesized expression evaluates to a point at infinity (last coordinate $0$) that corresponds to a direction vector in $\mathbb R^2$ and $\lambda_i$ is proportional to the (signed) distance between $\mathbf e$ and $\mathbf x_i^d$, and the equal sign can be read as strict equality of coordinate vectors. However, that equation also works if we use unnormalized homogeneous coordinates, provided that we interpret it as a statement about equivalence classes of coordinate vectors. The expression on the right-hand side still represents a point on the line between $\mathbf e$ and $\mathbf x_i^c$, but the geometric meaning of $\lambda_i$ isn’t so clear any more.

Moving right along, multiplication by $[\mathbf e]_\times$ is just that. Remember that $[\mathbf e]_\times \mathbf p$ is just a different way to write the cross product $\mathbf e\times\mathbf p$, and that the resulting vector represents the line through $\mathbf e$ and $\mathbf p$. Moreover, if $\mathbf q^T[\mathbf e]_\times \mathbf p = 0$ the three points are colinear. The derivation uses the matrix form of the cross product to allow the refactoring at the end.