Photogrammetric Conventions

# Image Coordinate System

Module StripAdjust uses a right-handed image coordinate system with the origin at the center of the upper/left pixel, the $$x$$-axis being row-aligned, pointing to the right (in the direction of increasing column indices), and the $$y$$-axis being column-aligned, pointing upwards (in the direction of decreasing column indices. Thus, $$y$$-coordinates are generally negative.

# Perspective Transformation

Let $$\begin{bmatrix} x_0 & y_0 & c \end{bmatrix}$$ define the position of the perspective center in the image coordinate system (with the principal point at $$\begin{bmatrix} x_0 & y_0 & 0 \end{bmatrix}$$, and $$c$$ being the focal length), and let $$\begin{bmatrix} X_0 & Y_0 & Z_0 \end{bmatrix}$$ define the position of the perspective center in the superior coordinate system. A point given in the superior coordinate system with coordinates $$\begin{bmatrix} X & Y & Z \end{bmatrix}$$ then relates to its projection into the image at $$\begin{bmatrix}x & y & 0\end{bmatrix}$$ according to the following formula:

$\frac{x-x_0}{-c} = \frac { (X-X_0) \cdot r_{00} + (Y-Y_0) \cdot r_{10} + (Z-Z_0) \cdot r_{20} } { (X-X_0) \cdot r_{02} + (Y-Y_0) \cdot r_{12} + (Z-Z_0) \cdot r_{22} }$

$\frac{y-y_0}{-c} = \frac { (X-X_0) \cdot r_{01} + (Y-Y_0) \cdot r_{11} + (Z-Z_0) \cdot r_{21} } { (X-X_0) \cdot r_{02} + (Y-Y_0) \cdot r_{12} + (Z-Z_0) \cdot r_{22} }$

with $$r_{ij}$$ being the elements of the rotation matrix $$\boldsymbol{R}$$:

$R = \begin{bmatrix} r_{00} & r_{01} & r_{02} \\ r_{10} & r_{11} & r_{12} \\ r_{20} & r_{21} & r_{22} \end{bmatrix}$

, which is defined by the rotation angles $$\omega$$, $$\varphi$$, and $$\kappa$$ as follows:

$\boldsymbol{R}_{\omega,\varphi,\kappa} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \omega & - \sin \omega \\ 0 & \sin \omega & \cos \omega \end{bmatrix} \begin{bmatrix} \cos \varphi & 0 & \sin \varphi \\ 0 & 1 & 0 \\ - \sin \varphi & 0 & \cos \varphi \\ \end{bmatrix} \begin{bmatrix} \cos \kappa & - \sin \kappa & 0 \\ \sin \kappa & \cos \kappa & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \\[10pt]$

, which evalutes to:

$\boldsymbol{R}_{\omega,\varphi,\kappa} = \begin{bmatrix} \cos \varphi \cdot \cos \kappa & - \cos \varphi \cdot \sin \kappa & \sin \varphi \\ \cos \omega \cdot \sin \kappa + \sin \omega \cdot \sin \varphi \cdot \cos \kappa & \cos \omega \cdot \cos \kappa - \sin \omega \cdot \sin \varphi \cdot \sin \kappa & - \sin \omega \cdot \cos \varphi \\ \sin \omega \cdot \sin \kappa - \cos \omega \cdot \sin \varphi \cdot \cos \kappa & \sin \omega \cdot \cos \kappa + \cos \omega \cdot \sin \varphi \cdot \sin \kappa & \cos \omega \cdot \cos \varphi \\ \end{bmatrix}$

# Lens Distortion

Module StripAdjust models lens distortion with two terms for radial distortion of 3rd and 5th degrees and respective parameters $$a_3$$ and $$a_4$$, with two terms for tangential distortion and respective parameters $$a_5$$ and $$a_6$$, using the constant normalization radius $$\rho_0$$, the radius of the zero-value of radially symmetrical distortion. These terms for lens distortion are used to shift the principal point coordinates $$x_0$$ and $$y_0$$ in the formula above for perspective transformation:

$x_0 := x_0 + a_3 \cdot x_n \cdot (r^2-1) + a_4 \cdot x_n \cdot (r^4-1) + a_5 \cdot (r^2 + 2 \cdot x_n^2) + a_6 \cdot (2 \cdot x_n \cdot y_n)$

$y_0 := y_0 + a_3 \cdot y_n \cdot (r^2-1) + a_4 \cdot y_n \cdot (r^4-1) + a_5 \cdot (2 \cdot x_n \cdot y_n) + a_6 \cdot (r^2 + 2 \cdot y_n^2)$

using the following definitions:

$x_n := (x - x_0) / \rho_0$

$y_n := (y - y_0) / \rho_0$

$r^2 := x_n^2 + y_n^2$

with $$x_n$$ and $$y_n$$ being normalized, reduced image coordinates.