ij.plugin.filter
Interface ExtendedPlugInFilter

All Superinterfaces:
PlugInFilter
All Known Implementing Classes:
BackgroundSubtracter, Binary, Convolver, EDM, GaussianBlur, ImageMath, MaximumFinder, RankFilters, Rotator, StackLabeler, Translator, UnsharpMask

public interface ExtendedPlugInFilter
extends PlugInFilter

ImageJ plugins that process an image may implement this interface. In addition to the features of PlugInFilter, it is better suited for filters that have adialog asking for the options or filter parameters. It also offers support for preview, for a smooth progress bar when processing stacks and for calling back the PlugInFilterRunner (needed, e.g., to get the slice number when processing a stack in parallel threads).

The sequence of calls to an ExtendedPlugInFilter is the following:

- setup(arg, imp): The filter should return its flags.

- showDialog(imp, command, pfr): The filter should display the dialog asking for parameters (if any) and do all operations needed to prepare for processing the individual image(s) (E.g., slices of a stack). For preview, a separate thread may call setNPasses(nPasses) and run(ip) while the dialog is displayed. The filter should return its flags.

- setNPasses(nPasses): Informs the filter of the number of calls of run(ip) that will follow.

- run(ip): Processing of the image(s). With the CONVERT_TO_FLOAT flag, this method will be called for each color channel of an RGB image. With DOES_STACKS, it will be called for each slice of a stack.

- setup("final", imp): called only if flag FINAL_PROCESSING has been specified.

Flag DONE stops this sequence of calls.


Field Summary
static int KEEP_PREVIEW
          Set this flag if the last preview image may be kept as a result.
 
Fields inherited from interface ij.plugin.filter.PlugInFilter
CONVERT_TO_FLOAT, DOES_16, DOES_32, DOES_8C, DOES_8G, DOES_ALL, DOES_RGB, DOES_STACKS, DONE, FINAL_PROCESSING, KEEP_THRESHOLD, NO_CHANGES, NO_IMAGE_REQUIRED, NO_UNDO, PARALLELIZE_STACKS, ROI_REQUIRED, SNAPSHOT, STACK_REQUIRED, SUPPORTS_MASKING
 
Method Summary
 void setNPasses(int nPasses)
          This method is called by ImageJ to inform the plugin-filter about the passes to its run method.
 int showDialog(ImagePlus imp, java.lang.String command, PlugInFilterRunner pfr)
          This method is called after setup(arg, imp) unless the DONE flag has been set.
 
Methods inherited from interface ij.plugin.filter.PlugInFilter
run, setup
 

Field Detail

KEEP_PREVIEW

static final int KEEP_PREVIEW
Set this flag if the last preview image may be kept as a result. For stacks, this flag can lead to out-of-sequence processing of the slices, irrespective of the PARALLELIZE_STACKS flag.

See Also:
Constant Field Values
Method Detail

showDialog

int showDialog(ImagePlus imp,
               java.lang.String command,
               PlugInFilterRunner pfr)
This method is called after setup(arg, imp) unless the DONE flag has been set.

Parameters:
imp - The active image already passed in the setup(arg, imp) call. It will be null, however, if the NO_IMAGE_REQUIRED flag has been set.
command - The command that has led to the invocation of the plugin-filter. Useful as a title for the dialog.
pfr - The PlugInFilterRunner calling this plugin-filter. It can be passed to a GenericDialog by addPreviewCheckbox to enable preview by calling the run(ip) method of this plugin-filter. pfr can be also used later for calling back the PlugInFilterRunner, e.g., to obtain the slice number currently processed by run(ip).
Returns:
The method should return a combination (bitwise OR) of the flags specified in interfaces PlugInFilter and ExtendedPlugInFilter.

setNPasses

void setNPasses(int nPasses)
This method is called by ImageJ to inform the plugin-filter about the passes to its run method. During preview, the number of passes is one (or 3 for RGB images, if CONVERT_TO_FLOAT has been specified). When processing a stack, it is the number of slices to be processed (minus one, if one slice has been processed for preview before), and again, 3 times that number for RGB images processed with CONVERT_TO_FLOAT.