# Name

acfp - calculate the autocorrelation function of an image using padding with zeroes and multiplication in Fourier space.

# Usage

output = acfp(image, center=True)

## Input

image
input image (real)
center
if set to True (default), the origin of the result is at the center; if set to False, the origin is at (0,0), the option is much faster, but the result is difficult to use

## Output

output
autocorrelation function of the input image. Real. The origin of the autocorrelation function (term ccf(0,0,0)) is located at (int[n/2], int[n/2], int[n/2]) in 3D, (int[n/2], int[n/2]) in 2D, and at int[n/2] in 1D.

# Method

• Calculation of the circulant autocorrelation function of an image f is performed first by padding with zeroes to twice the size in real space,

next by calculating Fourier transform of the image, then the modulus squared in Fourier space as `|hat(f)|^2`, then the inverse Fourier transform, and finally the acfp is windowed out using the size of original images.

• In real space, this corresponds to:
• `\acfp(n)=sum_(k=0)^(nx-1)f(k+n)f(k)`

• `n = -(nx)/2, ..., (nx)/2`

• with the assumption that `f(k)=0 fo\r k<0 or kgenx`

• Note: acfp is free from "wrap around" artifacts, although coefficients with large lag n have large error (statistical uncertainty).

# Reference

Pratt, W. K., 1992. Digital image processing. Wiley, New York.

Pawel A. Penczek

category 1
FUNDAMENTALS
category 2
FOURIER

fundamentals.py

# Maturity

stable
works for most people, has been tested; test cases/examples available.

# Bugs

None. It is perfect.

acfp (last edited 2013-07-01 13:12:42 by localhost)