Run macro on objects

Run a specific ImageJ macro once per object from a specified input object collection (as opposed to the "Run macro" module, which runs once per analysis run).

Description

Run a specific ImageJ macro once per object from a specified input object collection (as opposed to the "Run macro" module, which runs once per analysis run). This module can optionally open an image into ImageJ for the macro to run on. Variables assigned during the macro can be extracted and stored as measurements associated with the current object.

Note: ImageJ can only run one macro at a time, so by using this module the "Simultaneous jobs" parameter of the "Input control" module must be set to 1.

Note: When this module runs, all windows currently open in ImageJ will be automatically hidden, then re-opened upon macro completion. This is to prevent accidental interference while the macro is running. It also allows the macro to run much faster (batch mode). To keep images open while the macro is running (for example, during debugging) start the macro with the command "setBatchMode(false)".

Parameters

ParameterDescription
Add variablePre-define variables, which will be immediately accessible within the macro. These can be used to provide user-controllable values to file-based macros or to prevent the need for editing macro code via the "Run macro on objects" panel.
Variable typeControls the data type of the variable that will be assigned within the macro:
  • "Boolean" Variable will be assigned a true/false value depending on whether the checkbox was selected/deselected (respectively).
  • .
  • "Number" Variable will be assigned a numeric value to which mathematical operations can be applied.
  • .
  • "Text" Variable will be assigned a text value. Irrespective of whether the value contains only numeric characters this will be interpreted as text.
.
Variable nameThe variable value can be accessed from within the macro by using this variable name.
Variable checkboxBoolean (true/false) value assigned to this variable if "Variable type" is set to "Boolean".
Variable numeric valueNumeric value assigned to this variable if "Variable type" is set to "Number".
Variable text valueText value assigned to this variable if "Variable type" is set to "Text".
Input objectsThe specified macro will be run once on each of the objects from this object collection. No information (e.g. assigned variables) is transferred between macro runs.
Provide input imageWhen selected, a specified image from the workspace will be opened prior to running the macro. This image will be the "active" image the macro runs on.
Input imageIf "Provide input image" is selected, this is the image that will be loaded into the macro. A duplicate of this image is made, so the image stored in the workspace will not be affected by any processing in the macro.
Update image after each runWhen selected (and "Provide input image" is also selected), the input image will be updated to the currently-active image at the end of each iteration. This allows all object runs for a macro to alter the input image..
Macro modeSelect the source for the macro code:
  • "Macro file" Load the macro from the file specified by the "Macro file" parameter.
  • "Macro text" Macro code is written directly into the "Macro text" box.
Macro textMacro code to be executed. MIA macro commands are enabled using the "run("Enable MIA Extensions");" command which is included by default. This should always be the first line of a macro if these commands are needed.
Macro fileSelect a macro file (.ijm) to be run by this module. As with the "Macro text" parameter, this macro should start with the "run("Enable MIA Extensions");" command.
Intercept variable as measurementThis allows variables assigned in the macro to be stored as measurements associated with the current object.
VariableVariable assigned in the macro to be stored as a measurement associated with the current object. This name must exactly match (including case) the name as written in the macro.