1954
Comment:

← Revision 5 as of 20130701 13:12:56 ⇥
1953
converted to 1.6 markup

Deletions are marked like this.  Additions are marked like this. 
Line 42:  Line 42: 
fundamentals.cpp  fundamentals.py 
Name
acfnp  calculate the normalized autocorrelation function of an image using padding with zeroes and multiplication in Fourier space.
Usage
output = acfnp(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
 normalized 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 normalized autocorrelation function of an image f is performed by first normalization of the image by subtracting its average and by dividing it by its standard deviation. Next, theh image is padded with zeroes to twice the size in real space, Fourier transform is calculated, its modulus squared in Fourier space calculated as `hat(f)^2`, then the inverse Fourier transform, and finally the acfnp is windowed out using the size of original images.
 In real space, this corresponds to:
`c\cfnp(n)=(1/(nx)(sum_(k=0)^(nx1)f((k+n)Ave_f)(f(k)Ave_g)))/(sigma_f^2`
`n = (nx)/2, ..., (nx)/2`
with the assumption that `f(k)=0 fo\r k<0 or kgenx`
Note: acfnp 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.
Author / Maintainer
Pawel A. Penczek
Keywords
 category 1
 FUNDAMENTALS
 category 2
 FOURIER
Files
fundamentals.py
Maturity
 stable
 works for most people, has been tested; test cases/examples available.
Bugs
None. It is perfect.