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.