Name
ccfp - calculate the cross-correlation function between two images using padding with zeroes and multiplication in Fourier space.
Usage
output = ccfp(image, ref, center=True)
Input
- image
- input image (real)
- ref
- second input image (real) (in the alignment problems, it should be the reference image).
- 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
- cross-correlation function between image and ref. Real. The origin of the cross-correlation 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 cross-correlation function between image f and reference image g is performed first by padding with zeroes to twice the size in real space, next by calculating Fourier transforms of both images, then the product in Fourier space as `hat(f)hat(g)^**`, then the inverse Fourier transform, and finally the c_p is windowed out using the size of original images.
- In real space, this corresponds to:
`\c_p(n)=sum_(k=0)^(nx-1)f(k+n)g(k)`
`n = -(nx)/2, ..., (nx)/2`
with the assumption that `g(k)=0 fo\r k<0 or kgenx`
Note: ccfp 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.