# Name

scfnpl - calculate the normalized 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 ccf coefficients.

# Usage

- output = scfnpl(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 normalized and lag-normalized self-correlation function of an image

*f*, first the imagea is normalized by subtracting its average and by dividing it by its standard deviation. Next, Fourier transform is calculated, then the modulus squared in Fourier space as``|hat(f)|^2``, then the inverse Fourier transform, the*scfnpl*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:

*scfnpl*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.