The AutoCorrelation function (ACF) is a plugin made for ImageJ which enable the user to perform autocorrelation calculations in both space and time on an image or a sequence of images. The plugin returns the characteristic time and distance of the images.
Description
The ACF plugin reads an image or sequence of images and uses the pixel values to measure the characteristic autocorrelation times and distances.
These characteristic times and distances can be seen as the average period or distances at which one pixel value will be repeated. They can be used to calculate the typical frequency of a fluctuation or the size of domains on an image.
ACF can also perform the measurement of the autocorrelation in time after doing the Fourier transform of the image. By doing so, the different ranges of spatial frequencies are analysed separately to extract their period of oscillation in time.
Algorithms
Space correlation
The correlation in space, which is an 2-D ACF, can be calculated via two different algorithms:
- A fast calculation can be made by computing the FFT of the image first. The Wiener-Khinchin theorem indeed specify that the autocorrelation is simply given by the Fourier transform of the absolute square of the signal. Unfortunately, the FFT in ImageJ can only be made on images with a size N = 2^k, which means that images with a different size will need to be resized first. It also raises problem at the edge of the region of interest where the signal stops brutally.
- The second method to calculate the ACF is to use the rough definition and multiply each pixel value Ixy with all the other pixel values Ix’y’, such as the distance xy to x’y’ is equal to a given radius r. With this methods, there is no issue on the edge of the image but the calculation is relatively slow.
Time correlation
The time correlation, which is a 1-D ACF, is simply done by multiplying each pixel value Ixy(t) with all the other pixel values Ixy(t+t’).
Download
The whole plugin is free to download. Use the link below to start the download (10MB). The source code can also be obtained from its GitHub page.
Please remember that full support is not provided for this software. You are still free to contact me if you have specific questions on the code, but I cannot guarantee that I will be able to help you.