ImageJ2 Python Scripts
Introduction
This page is a collection of ImageJ2 only Python scripts. It means that IJ1 should be avoided as much as possible but if you can use it if it's really necessary.
Scripts
Z Projection
Do a Z projection.
# @ImageJ ij # @Dataset data # TODO : Find a way to use script parameters to let user choose between # "max", "mean", "min", "median", etc. from net.imagej.axis import Axes from net.imagej.ops import Ops def main(): # Select which dimension to project z_dim = data.dimensionIndex(Axes.Z) if z_dim == -1: print("Z dimension not found.") return if data.dimension(z_dim) == 1: print("Z dimension has only one frame.") return # Write the output dimensions projected_dimensions = [data.dimension(d) for d in range(0, data.numDimensions()) if d != z_dim] # Create the output image z_projected = ij.op().create().img(projected_dimensions) # Create the op and run it max_op = ij.op().op(Ops.Stats.Max, data) ij.op().transform().project(z_projected, data, max_op, z_dim) # Create a dataset z_projected = ij.dataset().create(z_projected) # Set the correct axes (is that needed ?) axes = [data.axis(d) for d in range(0, data.numDimensions()) if d != z_dim] z_projected.setAxes(axes) print(z_projected) ij.ui().show("z_projected", z_projected) main()
Apply Threshold
# @ImageJ ij # @Dataset data method_threshold = "otsu" # Get the histogram histo = ij.op().run("image.histogram", data.getImgPlus()) # Get the threshold threshold = ij.op().run("threshold.%s" % method_threshold, histo) # Apply the threshold thresholded = ij.op().run("threshold.apply", data.getImgPlus(), threshold) # Create output thresholded = ij.dataset().create(thresholded) ij.ui().show("thresholded", thresholded))
A more direct way if you don't need to nodify the threshold is this :
# @ImageJ ij # @Dataset data method_threshold = "otsu" # Apply the threshold thresholded = ij.op().run("threshold.%s" % method_threshold, data.getImgPlus()) # Create output thresholded = ij.dataset().create(thresholded) ij.ui().show("thresholded", thresholded)