# Phase correlation

In image processing, phase correlation is a method of image registration, and uses a fast frequency-domain approach to estimate the relative translative offset between two similar images.

## Example

The following image demonstrates the usage of phase correlation to determine relative translative movement between two images corrupted by independent Gaussian noise. The image was translated by (30,33) pixels. Accordingly, one can clearly see a peak in the phase-correlation representation at approximately (30,33).

## Method

Given two input images $\ g_a$ and $\ g_b$:

Apply a window function (e.g., a Hamming window) on both images to reduce edge effects. Then, calculate the discrete 2D Fourier transform of both images.

$\ \mathbf{G}_a = \mathcal{F}\{g_a\}, \; \mathbf{G}_b = \mathcal{F}\{g_b\}$

Calculate the cross-power spectrum by taking the complex conjugate of the second result, multiplying the Fourier transforms together elementwise, and normalizing this product elementwise.

$\ R = \frac{ \mathbf{G}_a \circ \mathbf{G}_b^*}{|\mathbf{G}_a \mathbf{G}_b^*|}$

Where $\circ$ is the Hadamard product (entry-wise product).

Obtain the normalized cross-correlation by applying the inverse Fourier transform.

$\ r = \mathcal{F}^{-1}\{R\}$

Determine the location of the peak in $\ r$.

$\ (\Delta x, \Delta y) = \arg \max_{(x, y)}\{r\}$

Commonly, interpolation methods are used to estimate the peak location to non-integer values, despite the fact that the data are discrete and is often termed 'subpixel registration'. Because the Fourier representation of the data has already been computed, it is especially convenient to use the Fourier shift theorem with real-valued shifts for this purpose. It is also possible to infer the peak location from phase characteristics in Fourier space without the inverse transformation, as noted by Stone [1]

## Rationale

The method is based on the Fourier shift theorem. Let the two images $\ g_a$ and $\ g_b$ be circularly-shifted versions of each other:

$\ g_b(x,y) \ \stackrel{\mathrm{def}}{=}\ g_a((x - \Delta x) \bmod M, (y - \Delta y) \bmod N)$

(where the images are $\ M \times N$ in size).

Then, the discrete Fourier transforms of the images will be shifted relatively in phase:

$\mathbf{G}_b(u,v) = \mathbf{G}_a(u,v) e^{-2 \pi i (\frac{u \Delta x}{M} + \frac{v \Delta y}{N}) }$

One can then calculate the normalized cross-power spectrum to factor out the phase difference:

\begin{align} R(u,v) &= \frac{ \mathbf{G}_a \mathbf{G}_b^*}{|\mathbf{G}_a \mathbf{G}_b^* |} \\ &= \frac{ \mathbf{G}_a \mathbf{G}_a^* e^{2 \pi i (\frac{u \Delta x}{M} + \frac{v \Delta y}{N}) }}{|\mathbf{G}_a \mathbf{G}_a^* e^{2 \pi i (\frac{u \Delta x}{M} + \frac{v \Delta y}{N}) }|} \\ &= \frac{ \mathbf{G}_a \mathbf{G}_a^* e^{2 \pi i (\frac{u \Delta x}{M} + \frac{v \Delta y}{N}) }}{|\mathbf{G}_a \mathbf{G}_a^*|} \\ &= e^{2 \pi i (\frac{u \Delta x}{M} + \frac{v \Delta y}{N}) } \end{align}

since the magnitude of an imaginary exponential always is one, and the phase of $\ \mathbf{G}_a \mathbf{G}_a^*$ always is zero.

The inverse Fourier transform of a complex exponential is a Kronecker delta, i.e. a single peak:

$\ r(x,y) = \delta(x + \Delta x, y + \Delta y)$

This result could have been obtained by calculating the cross correlation directly. The advantage of this method is that the discrete Fourier transform and its inverse can be performed using the fast Fourier transform, which is much faster than correlation for large images.

### Benefits

Unlike many spatial-domain algorithms, the phase correlation method is resilient to noise, occlusions, and other defects typical of medical or satellite images.[citation needed]

The method can be extended to determine rotation and scaling differences between two images by first converting the images to log-polar coordinates. Due to properties of the Fourier transform, the rotation and scaling parameters can be determined in a manner invariant to translation.[2][3]

### Limitations

In practice, it is more likely that $\ g_b$ will be a simple linear shift of $\ g_a$, rather than a circular shift as required by the explanation above. In such cases, $\ r$ will not be a simple delta function, which will reduce the performance of the method. In such cases, a window function (such as a Gaussian or Tukey window) should be employed during the Fourier transform to reduce edge effects, or the images should be zero padded so that the edge effects can be ignored. If the images consist of a flat background, with all detail situated away from the edges, then a linear shift will be equivalent to a circular shift, and the above derivation will hold exactly. The peak can be sharpened by using edge or vector correlation. [4]

For periodic images (such as a chessboard), phase correlation may yield ambiguous results with several peaks in the resulting output.

## Applications

Phase correlation is the preferred method for television standards conversion, as it leaves the fewest artifacts.