# Transformation matrices" In TriDimRegression: Bayesian Statistics for 2D/3D Transformations

r knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ` For most transformation, we assume that we can compute only the translation coefficients ($a_i$). The only exception are Euclidean transformation around a single axis of rotation that allow to compute a single scaling and a single rotation coefficient. In all other cases, values of computed coefficients would depend on the assumed order of individual transformation, making them no more than a potentially misleading guesses. ## Bidimensional regression ### Translation Number of parameters: 2 • translation:$a_1$,$a_2$$$\begin{bmatrix} 1 & 0 & a_1 \ 0 & 1 & a_2 \ 0 & 0 & 1 \end{bmatrix}$$ ### Euclidean Number of parameters: 4 • translation:$a_1$,$a_2$• scaling:$\phi$• rotation:$\theta$$$\begin{bmatrix} b_1 & b_2 & a_1 \ -b_2 & b_1 & a_2 \ 0 & 0 & 1 \end{bmatrix}$$ The Euclidean transformation is a special case, where we can compute rotation ($\theta$) and the single scaling ($\phi$) coefficients, as follows: $$\phi = \sqrt{b_1^2 + b_2^2}\ \theta = tan^{-1}(\frac{b_2}{b_1})$$ ### Affine Number of parameters: 6 • translation:$a_1$,$a_2$• scaling · rotation · sheer:$b_1$,$b_2$,$b_3$,$b_4$$$\begin{bmatrix} b_1 & b_2 & a_1 \ b_3 & b_4 & a_2 \ 0 & 0 & 1 \end{bmatrix}$$ ### Projective Number of parameters: 8 • translation:$a_1$,$a_2$• scaling · rotation · sheer · projection:$b_1$...$b_6$$$\begin{bmatrix} b_1 & b_2 & a_1 \ b_3 & b_4 & a_2 \ b_5 & b_6 & 1 \end{bmatrix}$$ ## Tridimensional regression ### Translation Number of parameters: 3 • translation:$a_1$,$a_2$,$a_3$$$\begin{bmatrix} 1 & 0 & 0 & a_1 \ 0 & 1 & 0 & a_2 \ 0 & 0 & 1 & a_3 \ 0 & 0 & 0 & 1 \end{bmatrix}$$ ### Euclidean Number of parameters: 5 • translation:$a_1$,$a_2$,$a_3$• scaling:$\phi$• rotation:$\theta$For all Euclidean rotations, we opted to use coefficient$b_3$to code scaling ($\phi$), whereas$b_2 = sin(\theta)$and$b_1=\phi~ cos(\theta)$. The coefficients are computed as follows: $$\phi = \sqrt{b_1^2 + b_2^2}\ \theta = tan^{-1}(\frac{b_2}{b_1})$$ #### Euclidean, rotation about x axis Note that during fitting$\phi$is computed from$b_1$and$b_2$on the fly. $$\begin{bmatrix} \phi & 0 & 0 & a_1 \ 0 & b_1 &-b_2 & a_2 \ 0 & b_2 & b_1 & a_3 \ 0 & 0 & 0 & 1 \end{bmatrix}$$ #### Euclidean, rotation about y axis $$\begin{bmatrix} b_1 & 0 & b_2 & a_1 \ 0 & \phi & 0 & a_2 \ -b_2 & 0 & b_1 & a_3 \ 0 & 0 & 0 & 1 \end{bmatrix}$$ #### Euclidean, rotation about z axis $$\begin{bmatrix} b_1 &-b_2 & 0 & a_1 \ b_2 & b_1 & 0 & a_2 \ 0 & 0 & \phi & a_3 \ 0 & 0 & 0 & 1 \end{bmatrix}$$ ### Affine Number of parameters: 12 • translation:$a_1$,$a_2$,$a_3$• scaling · rotation · sheer:$b_1$...$b_9$$$\begin{bmatrix} b_1 & b_2 & b_3 & a_1 \ b_4 & b_5 & b_6 & a_2 \ b_7 & b_8 & b_9 & a_3 \ 0 & 0 & 0 & 1 \end{bmatrix}$$ ### Projective Number of parameters: 15 • translation:$a_1$,$a_2$,$a_3$• scaling · rotation · sheer · projection:$b_1$...$b_12\$

$$\begin{bmatrix} b_1 & b_2 & b_3 & a_1 \ b_4 & b_5 & b_6 & a_2 \ b_7 & b_8 & b_9 & a_3 \ b_{10} & b_{11} & b_{12} & 1 \end{bmatrix}$$

## Try the TriDimRegression package in your browser

Any scripts or data that you put into this service are public.

TriDimRegression documentation built on May 4, 2021, 9:08 a.m.