Image Registration: Difference between revisions

Line 30: Line 30:


==Log-Polar Transformation==
==Log-Polar Transformation==
See Wolberg and Zokai<ref name="wolberg2000robust">George Wolberg, and Siavash Zokai. ''Robust Image Registration Using Log-Polar Transform'' URL:[https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf].
This is copied from Wolberg and Zokai<ref name="wolberg2000robust">George Wolberg, and Siavash Zokai. ''Robust Image Registration Using Log-Polar Transform'' URL:[https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf https://home.cis.rit.edu/~cnspci/references/wolberg2000.pdf]</ref>.


The log-polar transformation is defined as follows:<br>
The log-polar transformation is defined as follows:<br>
\(
\(
\begin{align}
\begin{align}
r &= \sqrt{(x-x_c)^2 + (y-y_c)^2}\\
b &= \log(r) = \log\left(\sqrt{(x-x_c)^2 + (y-y_c)^2}\right)\\
a &= \operatorname{arctan2}(y-y_c, x-x_c)
a &= \operatorname{arctan2}(y-y_c, x-x_c)
\end{align}
\end{align}
\)<br>
\)<br>
where <math>(x_c, y_c)</math> is the center of the image.
where <math>(x_c, y_c)</math> is the center of the image and <math>r</math> is the distance from the center of the image.
 
Here a rotation in Cartesian coordinates <math>(x, y)</math> around the center \((x_c, y_c)\) corresponds to a shift in \(a\) in log-polar coordinates.
 
A scale change (i.e. enlarge or stretch) is a shift in log-space:<br>
\( \lambda r \mapsto \log(\lambda r) = \log(\lambda) + \log(r) \)<br>


Here a rotation in Cartesian coordinates <math>(x, y)</math> around the center \((x_c, y_c)\) corresponds to a shift in \(a\) in log-polar coordinates.<br>
These translations can be found using [[Wikipedia: Cross-correlation]].
These translations can be found using [[Wikipedia: Cross-correlation]].


A scale change (i.e. enlarge or stretch) is a shift in log-space:<br>
;Algorithm
\( \lambda x \mapsto \log(\lambda x) = \log(\lambda) + \log(x) \)
For each resolution from coarse to fine, do the following:
# Crop central region <math>I_1'</math> from <math>I_1</math>
# Compute the low-polar transformation <math>I_{1p}'</math>
# 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\)


==References==
==References==