CLIJ2

Logo

GPU accelerated image processing for everyone

CLIJ2 home

automaticThreshold

By Robert Haase based on work by G. Landini and W. Rasband

The automatic thresholder utilizes the threshold methods from ImageJ on a histogram determined on the GPU to create binary images as similar as possible to ImageJ ‘Apply Threshold’ method.

Enter one of these methods in the method text field: [Default, Huang, Intermodes, IsoData, IJ_IsoData, Li, MaxEntropy, Mean, MinError, Minimum, Moments, Otsu, Percentile, RenyiEntropy, Shanbhag, Triangle, Yen]

Categories: Segmentation, Binary

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

automaticThreshold often follows after

automaticThreshold is often followed by

Usage in ImageJ macro

Ext.CLIJ2_automaticThreshold(Image input, Image destination, String method);

Usage in object oriented programming languages

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

// get input parameters
ClearCLBuffer input = clij2.push(inputImagePlus);
destination = clij2.create(input);
// Execute operation on GPU
clij2.automaticThreshold(input, destination, method);
// show result
destinationImagePlus = clij2.pull(destination);
destinationImagePlus.show();

// cleanup memory on GPU
clij2.release(input);
clij2.release(destination);
Matlab
% init CLIJ and GPU
clij2 = init_clatlab();

% get input parameters
input = clij2.pushMat(input_matrix);
destination = clij2.create(input);
% Execute operation on GPU
clij2.automaticThreshold(input, destination, method);
% show result
destination = clij2.pullMat(destination)

% cleanup memory on GPU
clij2.release(input);
clij2.release(destination);
Icy JavaScript
// init CLIJ and GPU
importClass(net.haesleinhuepf.clicy.CLICY);
importClass(Packages.icy.main.Icy);

clij2 = CLICY.getInstance();

// get input parameters
input_sequence = getSequence();
input = clij2.pushSequence(input_sequence);
destination = clij2.create(input);
// Execute operation on GPU
clij2.automaticThreshold(input, destination, method);
// show result
destination_sequence = clij2.pullSequence(destination)
Icy.addSequence(destination_sequence);
// cleanup memory on GPU
clij2.release(input);
clij2.release(destination);

Example notebooks

compare_workflows
labeling
measure_overlap

Example scripts

boundingBoxes.ijm
center_of_mass.ijm
compare_workflows.ijm
excludeLabelsOnEdges.ijm
excludeLabelsWithinRange.ijm
intensity_per_label.ijm
labeling.ijm
measure_overlap.ijm
outline.ijm
particle_analysis.ijm
statistics.ijm
workflow.ijm
automaticThreshold.py
segmentation.py
statistics.py

License terms

The code for the automatic thresholding methods originates from https://github.com/imagej/imagej1/blob/master/ij/process/AutoThresholder.java

Detailed documentation on the implemented methods can be found online: https://imagej.net/Auto_Threshold

Back to CLIJ2 reference Back to CLIJ2 documentation

Imprint