CLIJ2

Logo

GPU accelerated image processing for everyone

CLIJ2 home

crossCorrelation

Performs cross correlation analysis between two images.

The second image is shifted by deltaPos in the given dimension. The cross correlation coefficient is calculated for each pixel in a range around the given pixel with given radius in the given dimension. Together with the original images it is recommended to hand over mean filtered images using the same radius.

Availability: Available in Fiji by activating the update sites clij and clij2. This function is part of clijx_-0.32.0.1.jar.

Usage in ImageJ macro

Ext.CLIJx_crossCorrelation(Image input1, Image meanInput1, Image input2, Image meanInput2, Image destination, Number radius, Number deltaPos, Number dimension);

Usage in object oriented programming languages

Java
// init CLIJ and GPU
import net.haesleinhuepf.clijx.CLIJx;
import net.haesleinhuepf.clij.clearcl.ClearCLBuffer;
CLIJx clijx = CLIJx.getInstance();

// get input parameters
ClearCLBuffer input1 = clijx.push(input1ImagePlus);
ClearCLBuffer meanInput1 = clijx.push(meanInput1ImagePlus);
ClearCLBuffer input2 = clijx.push(input2ImagePlus);
ClearCLBuffer meanInput2 = clijx.push(meanInput2ImagePlus);
destination = clijx.create(input1);
int radius = 10;
int deltaPos = 20;
int dimension = 30;
// Execute operation on GPU
clijx.crossCorrelation(input1, meanInput1, input2, meanInput2, destination, radius, deltaPos, dimension);
// show result
destinationImagePlus = clijx.pull(destination);
destinationImagePlus.show();

// cleanup memory on GPU
clijx.release(input1);
clijx.release(meanInput1);
clijx.release(input2);
clijx.release(meanInput2);
clijx.release(destination);
Matlab
% init CLIJ and GPU
clijx = init_clatlabx();

% get input parameters
input1 = clijx.pushMat(input1_matrix);
meanInput1 = clijx.pushMat(meanInput1_matrix);
input2 = clijx.pushMat(input2_matrix);
meanInput2 = clijx.pushMat(meanInput2_matrix);
destination = clijx.create(input1);
radius = 10;
deltaPos = 20;
dimension = 30;
% Execute operation on GPU
clijx.crossCorrelation(input1, meanInput1, input2, meanInput2, destination, radius, deltaPos, dimension);
% show result
destination = clijx.pullMat(destination)

% cleanup memory on GPU
clijx.release(input1);
clijx.release(meanInput1);
clijx.release(input2);
clijx.release(meanInput2);
clijx.release(destination);

Back to CLIJ2 reference Back to CLIJ2 documentation

Imprint