ccfn - calculate the normalized circulant cross-correlation function between two images using multiplication in Fourier space.
output = ccfn(image, ref, center=True)
- input image (real)
- second input image (real) (in the alignment problems, it should be the reference image).
- 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
- normalized circulant 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.
Calculation of the circulant cross-correlation function between image f and reference image g is performed by
first normalization of both images by subtracting their respective averages and by dividing them by their respective
standard deviations. Next, Fourier transforms are calculated, multiplied as `hat(f)_"normalized"hat(g)_"normalized"^**`, and an inverse Fourier
transform is calculated to yield ccfn.
- In real space, this corresponds to:
`n = -(nx)/2, ..., (nx)/2`
Note: for image size nx and object size m, the circulant ccfn is valid only within `+//- (nx-m/2)` pixels
from the origin. More distant ccfn values are corrupted by the "wrap around" artifacts.
Pratt, W. K., 1992. Digital image processing. Wiley, New York.
Author / Maintainer
Pawel A. Penczek
- category 1
- category 2
- works for most people, has been tested; test cases/examples available.
None. It is perfect.