Image Registration: Difference between revisions
Line 65: | Line 65: | ||
===Adaptive Log-Polar Transformation=== | ===Adaptive Log-Polar Transformation=== | ||
The goal of Adaptive Polar Transform by Matungka ''et al.''<ref name="matungka2009adaptive"><cite class="journal">Rittavee Matungka, Yuan F. Zheng, and Robert L. Ewing (2009). ''Image Registration Using Adaptive Polar Transform'' DOI: [https://doi.org/10.1109/TIP.2009.2025010 10.1109/TIP.2009.2025010] URL: [https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf]</cite></ref> is to address the non-uniform sampling of the log-polar transformation. | The goal of Adaptive Polar Transform by Matungka ''et al.''<ref name="matungka2009adaptive"><cite class="journal">Rittavee Matungka, Yuan F. Zheng, and Robert L. Ewing (2009). ''Image Registration Using Adaptive Polar Transform'' DOI: [https://doi.org/10.1109/TIP.2009.2025010 10.1109/TIP.2009.2025010] URL: [https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf]</cite></ref> is to address the non-uniform sampling of the log-polar transformation. | ||
[[File: Adaptive polar transform fig4.png | 500px | Adaptive Polar Transform]] | |||
[[File: Adaptive polar transform fig5.png | 500px | Adaptive Polar Transform Lena]] | |||
{{ hidden | Motivation | | {{ hidden | Motivation | | ||
Line 78: | Line 81: | ||
This leads to the following equations:<br> | This leads to the following equations:<br> | ||
<math> | |||
\begin{align} | \begin{align} | ||
R_i &= \exp(i \times \frac{\log R_{max}}{n_\rho}), \qquad R_{max} = R_{n_\rho}\\ | R_i &= \exp(i \times \frac{\log R_{max}}{n_\rho}), \qquad R_{max} = R_{n_\rho}\\ | ||
Line 84: | Line 87: | ||
n_\theta &\geq 2\pi R_{max} | n_\theta &\geq 2\pi R_{max} | ||
\end{align} | \end{align} | ||
</math> | |||
However, using these would lead to oversampling of the fovea region wasting computation resources. | However, using these would lead to oversampling of the fovea region wasting computation resources. | ||
}} | }} | ||
Line 93: | Line 96: | ||
Given an image of size \(2 R_{max} \times 2 R_{max}\), let (R_i\) the radius size for pixel \(i=1,...,n_\rho\). | Given an image of size \(2 R_{max} \times 2 R_{max}\), let (R_i\) the radius size for pixel \(i=1,...,n_\rho\). | ||
The main idea is that the number of pixels \(n_\theta\) should be adaptive to the radius | The main idea is that the number of pixels \(n_\theta\) should be adaptive to the radius: | ||
\[ | \[ | ||
\begin{align} | \begin{align} |
Revision as of 16:48, 18 May 2020
Image registration is recovering an affine transformation (rotation + translation) between two images.
Image registration can be performed in the frequency domain with the Fourier transform or in the spatial domain with a log-polar transformation.
Problem Statement
We are given two images \(\displaystyle I_1\) and \(\displaystyle I_2\).
Let \(\displaystyle (x,y)\) be uv coordinates within the image.
We want to find a rotation and translation from \(\displaystyle (x,y)\) to \(\displaystyle (x',y')\) such that \(\displaystyle I_1(x,y) = I_2(x', y')\).
This is represented as:
\(
\begin{align}
x' &= a_1 x + a_2 y + a_3\\
y' &= a_4 x + a_5 y + a_6
\end{align}
\)
This can also be written as:
\(\displaystyle
\begin{pmatrix}
x' \\ y' \\ 1
\end{pmatrix}
=
\begin{pmatrix}
a_1 & a_2 & a_3\\
a_4 & a_5 & a_6\\
0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ 1
\end{pmatrix}
\)
Log-Polar Transformation
This is copied from Wolberg and Zokai[1].
The log-polar transformation is defined as follows:
\(
\begin{align}
\rho &= \log(r) = \log\left(\sqrt{(x-x_c)^2 + (y-y_c)^2}\right)\\
\theta &= \operatorname{arctan2}(y-y_c, x-x_c)
\end{align}
\)
where \(\displaystyle (x_c, y_c)\) is the center of the image and \(\displaystyle r\) is the distance from the center of the image.
Here a rotation in Cartesian coordinates \(\displaystyle (x, y)\) around the center \((x_c, y_c)\) corresponds to a shift in \(\theta\) in log-polar coordinates.
A scale change (i.e. enlarge or stretch) is a shift in log-space:
\( \lambda r \mapsto \log(\lambda r) = \log(\lambda) + \log(r) \)
These translations can be found using Wikipedia: Cross-correlation.
- Algorithm
For each resolution from coarse to fine, do the following:
- Crop central region \(\displaystyle I_1'\) from \(\displaystyle I_1\)
- Compute the low-polar transformation \(\displaystyle I_{1p}'\)
- For all positions \((x,y)\)
- Crop region \(I_{2p}'\)
- Compute \(I_{2p}'\)
- Cross-correlate \(I_{1p}'\) and \(I_{2p}'\) to get \((dx, dy)\)
- If max correlation, save \((x, y)\) and \((dx, dy)\)
- Scale = \(dx\)
- Rotation = \(dy\)
- Translation = \(x, y\)
Adaptive Log-Polar Transformation
The goal of Adaptive Polar Transform by Matungka et al.[2] is to address the non-uniform sampling of the log-polar transformation.
Let the following:
- \(n_r\) be the number of samples (i.e. resolution) along the \(r\) axis
- \(n_\theta\) be the number of samples along the \(\theta\) axis
Given an image of size \(2 R_{max} \times 2 R_{max}\), let (R_i\) the radius size for pixel \(i=1,...,n_\rho\).
The main idea is that the number of pixels \(n_\theta\) should be adaptive to the radius: \[ \begin{align} n_r &= R_{max}\\ n_{\theta_i} &= R_i \end{align} \]
References
- ↑ George Wolberg, and Siavash Zokai (2000). Robust Image Registration Using Log-Polar Transform DOI: 10.1109/ICIP.2000.901003 URL: https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf
- ↑ Rittavee Matungka, Yuan F. Zheng, and Robert L. Ewing (2009). Image Registration Using Adaptive Polar Transform DOI: 10.1109/TIP.2009.2025010 URL: https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf