Name
scfpl - calculate the self-correlation function of an image using padding with zeroes, multiplication in Fourier space, and normalization of the result by the actual number of pixels used for calculating the acf coefficients.
Usage
output = scfpl(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
- self-correlation function of the input image. Real. The origin of the self-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
In order to calculate the lag-normalized self-correlation function of an image f, first the image is padded with zeroes to twice the size. Next, Fourier transform is calculated, then modulus in Fourier space as `|hat(f)|`, then the inverse Fourier transform, the scfpl is windowed out using the size of original images, and the resulting self-correlation function is normalized by the lag, i.e., the actual number of pixels in image that entered the calculation.
- This expression does not have any corresponding expression in real space - it can be considered to be adaptive filtration.
Note: scfpl is free from "wrap around" artifacts.
Reference
van Heel, M., Schatz, M., Orlova, E., 1992. Correlation functions revisited. Ultramicroscopy 46, 307-316.
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.