ij.plugin.filter
Class EDM

java.lang.Object
  extended by ij.plugin.filter.EDM
All Implemented Interfaces:
PlugInFilter

public class EDM
extends java.lang.Object
implements PlugInFilter

This plugin implements the Euclidean Distance Map (EDM), Ultimate Eroded Points and Watershed commands in the Process/Binary submenu. Note: These functions do not take ROIs into account (any ROI gets deselected). setup is called with no argument for EDM, "points" for ultimate eroded points and "watershed" for watershed segmentation. Ultimate Eroded Points and Watershed are handled by the MaximumFinder plugin applied to the EDM version 09-Nov-2006 Michael Schmid


Field Summary
(package private)  java.lang.String arg
           
(package private)  ImagePlus imp
           
(package private)  boolean invertImage
           
static int ONE
          unit in 16-bit EDM image: this value corresponds to a distance of one pixel
(package private)  int slice
           
static int SQRT2
          in 16-bit EDM image this value corresponds to a pixel distance of sqrt(2)
static int SQRT5
          in 16-bit EDM image this value corresponds to a pixel distance of sqrt(2)
 
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, NO_CHANGES, NO_IMAGE_REQUIRED, NO_UNDO, PARALLELIZE_STACKS, ROI_REQUIRED, SNAPSHOT, STACK_REQUIRED, SUPPORTS_MASKING
 
Constructor Summary
EDM()
           
 
Method Summary
(package private)  void convertToBytes(short[] image16, byte[] image8)
          convert 16-bit EDM to 8 bits
 ShortProcessor make16bitEDM(ImageProcessor ip)
          Calculates a 16-bit grayscale Euclidean Distance Map for a binary 8-bit image.
 void run(ImageProcessor ip)
          Filters use this method to process the image.
(package private)  void setEdgeValue(int offset, int rowsize, short[] image16, int x, int y, int xmax, int ymax)
           
 int setup(java.lang.String arg, ImagePlus imp)
          This method is called once when the filter is loaded.
(package private)  void setValue(int offset, int rowsize, short[] image16)
           
 void toEDM(ImageProcessor ip)
          Converts a binary image into a 8-bit grayscale Euclidean Distance Map (EDM).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ONE

public static final int ONE
unit in 16-bit EDM image: this value corresponds to a distance of one pixel

See Also:
Constant Field Values

SQRT2

public static final int SQRT2
in 16-bit EDM image this value corresponds to a pixel distance of sqrt(2)

See Also:
Constant Field Values

SQRT5

public static final int SQRT5
in 16-bit EDM image this value corresponds to a pixel distance of sqrt(2)

See Also:
Constant Field Values

imp

ImagePlus imp

arg

java.lang.String arg

slice

int slice

invertImage

boolean invertImage
Constructor Detail

EDM

public EDM()
Method Detail

setup

public int setup(java.lang.String arg,
                 ImagePlus imp)
Description copied from interface: PlugInFilter
This method is called once when the filter is loaded. 'arg', which may be blank, is the argument specified for this plugin in IJ_Props.txt or in the plugins.config file of a jar archive containing the plugin. 'imp' is the currently active image. This method should return a flag word that specifies the filters capabilities.

For Plugin-filters specifying the FINAL_PROCESSING flag, the setup method will be called again, this time with arg = "final" after all other processing is done.

Specified by:
setup in interface PlugInFilter

run

public void run(ImageProcessor ip)
Description copied from interface: PlugInFilter
Filters use this method to process the image. If the SUPPORTS_STACKS flag was set, it is called for each slice in a stack. With CONVERT_TO_FLOAT, the filter is called with the image data converted to a FloatProcessor (3 times per image for RGB images). ImageJ will lock the image before calling this method and unlock it when the filter is finished. For PlugInFilters specifying the NO_IMAGE_REQUIRED flag and not the DONE flag, run(ip) is called once with the argument null.

Specified by:
run in interface PlugInFilter

toEDM

public void toEDM(ImageProcessor ip)
Converts a binary image into a 8-bit grayscale Euclidean Distance Map (EDM). Each foreground (zero) pixel in the binary image is assigned a value equal to its distance from the nearest background (255) pixel.


make16bitEDM

public ShortProcessor make16bitEDM(ImageProcessor ip)
Calculates a 16-bit grayscale Euclidean Distance Map for a binary 8-bit image. Each foreground (black) pixel in the binary image is assigned a value equal to its distance from the nearest background (white) pixel. Uses the two-pass EDM algorithm from the "Image Processing Handbook" by John Russ.


setValue

void setValue(int offset,
              int rowsize,
              short[] image16)

setEdgeValue

void setEdgeValue(int offset,
                  int rowsize,
                  short[] image16,
                  int x,
                  int y,
                  int xmax,
                  int ymax)

convertToBytes

void convertToBytes(short[] image16,
                    byte[] image8)
convert 16-bit EDM to 8 bits