ij
Class ImagePlus

java.lang.Object
  extended by ij.ImagePlus
All Implemented Interfaces:
Measurements, java.awt.image.ImageObserver, java.lang.Cloneable
Direct Known Subclasses:
BMP_Reader, CompositeImage, DICOM, FITS_Reader, LutLoader, PGM_Reader

public class ImagePlus
extends java.lang.Object
implements java.awt.image.ImageObserver, Measurements, java.lang.Cloneable

An ImagePlus contain an ImageProcessor (2D image) or an ImageStack (3D, 4D or 5D image). It also includes metadata (spatial calibration and possibly the directory/file where it was read from). The ImageProcessor contains the pixel data (8-bit, 16-bit, float or RGB) of the 2D image and some basic methods to manipulate it. An ImageStack is essentually a list ImageProcessors of same type and size.

See Also:
ImageProcessor, ImageStack, ImageWindow, ImageCanvas

Field Summary
 boolean changes
          True if any changes have been made to this image.
protected static int CLOSED
           
static int COLOR_256
          8-bit indexed color
static int COLOR_RGB
          32-bit RGB color
protected  boolean compositeImage
           
protected  int currentSlice
           
protected  boolean dimensionsSet
           
static int GRAY16
          16-bit grayscale (unsigned)
static int GRAY32
          32-bit floating-point grayscale
static int GRAY8
          8-bit grayscale (unsigned)
protected  int height
           
protected  java.awt.Image img
           
protected  ImageProcessor ip
           
protected  boolean locked
           
protected  int nChannels
           
protected  int nFrames
           
protected  int nSlices
           
protected static int OPENED
           
protected  Roi roi
           
protected static int UPDATED
           
protected  int width
           
protected  ImageWindow win
           
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Fields inherited from interface ij.measure.Measurements
ADD_TO_OVERLAY, AREA, AREA_FRACTION, CENTER_OF_MASS, CENTROID, CIRCULARITY, ELLIPSE, FERET, INTEGRATED_DENSITY, INVERT_Y, KURTOSIS, LABELS, LIMIT, MAX_STANDARDS, MEAN, MEDIAN, MIN_MAX, MODE, PERIMETER, RECT, SCIENTIFIC_NOTATION, SHAPE_DESCRIPTORS, SKEWNESS, SLICE, STACK_POSITION, STD_DEV
 
Constructor Summary
ImagePlus()
          Constructs an uninitialized ImagePlus.
ImagePlus(java.lang.String pathOrURL)
          Constructs an ImagePlus from a TIFF, BMP, DICOM, FITS, PGM, GIF or JPRG specified by a path or from a TIFF, DICOM, GIF or JPEG specified by a URL.
ImagePlus(java.lang.String title, java.awt.Image img)
          Constructs an ImagePlus from an Image or BufferedImage.
ImagePlus(java.lang.String title, ImageProcessor ip)
          Constructs an ImagePlus from an ImageProcessor.
ImagePlus(java.lang.String title, ImageStack stack)
          Constructs an ImagePlus from a stack.
 
Method Summary
static void addImageListener(ImageListener listener)
           
 java.lang.Object clone()
          Returns a shallow copy of this ImagePlus.
 void close()
          Closes this image and sets the ImageProcessor to null.
 int[] convertIndexToPosition(int n)
          Converts the stack index 'n' (one-based) into a hyperstack position (channel, slice, frame).
 void copy()
          Copies the contents of the current selection, or the entire image if there is no selection, to the internal clipboard.
 void copy(boolean cut)
          Copies the contents of the current selection to the internal clipboard.
 void copyAttributes(ImagePlus imp)
          Copies attributes (name, ID, calibration, path) of the specified image to this image.
 void copyScale(ImagePlus imp)
          Copies the calibration of the specified image to this image.
 ImageStack createEmptyStack()
          Returns an empty image stack that has the same width, height and color table as this image.
 ImagePlus createHyperStack(java.lang.String title, int channels, int slices, int frames, int bitDepth)
          This method has been replaced by IJ.createHyperStack().
 ImagePlus createImagePlus()
          Returns a new ImagePlus with this image's attributes (e.g.
 LookUpTable createLut()
          Creates a LookUpTable object that corresponds to this image.
 void createNewRoi(int sx, int sy)
          Starts the process of creating a new selection, where sx and sy are the starting screen coordinates.
 void deleteRoi()
          Deletes the current region of interest.
 void draw()
          Draws the image.
 void draw(int x, int y, int width, int height)
          Draws image and roi outline using a clip rect.
 ImagePlus duplicate()
          Returns a copy (clone) of this ImagePlus.
 ImagePlus flatten()
          Returns a "flattened" version of this image, in RGB format.
 void flattenStack()
          Flattens all slices of this stack or HyperStack.
 void flush()
          Sets the ImageProcessor, Roi, AWT Image and stack image arrays to null.
 int getBitDepth()
          Returns the bit depth, 8, 16, 24 (RGB) or 32.
 java.awt.image.BufferedImage getBufferedImage()
          Returns a copy of this image as an 8-bit or RGB BufferedImage.
 int getBytesPerPixel()
          Returns the number of bytes per pixel.
 int getC()
          Returns the current hyperstack channel position.
 Calibration getCalibration()
          Returns this image's calibration.
 ImageCanvas getCanvas()
          Returns the ImageCanvas being used to display this image, or null.
 int getChannel()
           
 ImageProcessor getChannelProcessor()
          Returns a reference to the current ImageProcessor.
static ImagePlus getClipboard()
          Returns the internal clipboard or null if the internal clipboard is empty.
 int getCompositeMode()
          Returns the display mode (IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE) if this is a CompositeImage, otherwise returns -1.
 int getCurrentSlice()
          Returns the current stack index (one-based) or 1 if this is a single image.
static int getDefault16bitRange()
          Returns the default 16-bit display range, 0 (auto-scaling), 8, 10, 12, 15 or 16.
 int[] getDimensions()
          Returns the dimensions of this image (width, height, nChannels, nSlices, nFrames) as a 5 element int array.
 int[] getDimensions(boolean varify)
           
 double getDisplayRangeMax()
           
 double getDisplayRangeMin()
           
 FileInfo getFileInfo()
          Returns a FileInfo object containing information, including the pixel array, needed to save this image.
 int getFrame()
           
 Calibration getGlobalCalibration()
          Returns the system-wide calibration, or null.
 int getHeight()
           
 boolean getHideOverlay()
           
 int getID()
          Returns this image's unique numeric ID.
 java.awt.Image getImage()
          Returns this image as a AWT image.
 ImageStack getImageStack()
          Returns the base image stack.
 int getImageStackSize()
          If this is a stack, returns the actual number of images in the stack, else returns 1.
 java.lang.String getInfoProperty()
          Returns the "Info" property string, or null if it is not found.
 Calibration getLocalCalibration()
          Returns this image's local calibration, ignoring the "Global" calibration flag.
 java.lang.String getLocationAsString(int x, int y)
          Converts the current cursor location to a string.
 LUT[] getLuts()
           
 ImageProcessor getMask()
          For images with irregular ROIs, returns a byte mask, otherwise, returns null.
 int getNChannels()
          Returns the number of channels.
 int getNDimensions()
          Returns the number of dimensions (2, 3, 4 or 5).
 int getNFrames()
          Returns the number of frames (time-points).
 int getNSlices()
          Returns the image depth (number of z-slices).
 double getNumericProperty(java.lang.String key)
          Returns the numeric value from the "Info" property string associated with 'key', or NaN if the key is not found or the value associated with the key is not numeric.
 boolean getOpenAsHyperStack()
           
 FileInfo getOriginalFileInfo()
          Returns the FileInfo object that was used to open this image.
 Overlay getOverlay()
          Returns the current overly, or null if this image does not have an overlay.
 int[] getPixel(int x, int y)
          Returns the pixel value at (x,y) as a 4 element array.
 ImageProcessor getProcessor()
          Returns a reference to the current ImageProcessor.
 java.lang.String getProp(java.lang.String key)
          Deprecated.  
 java.util.Properties getProperties()
          Returns this image's Properties.
 java.lang.Object getProperty(java.lang.String key)
          Returns the property associated with 'key', or null if it is not found.
 Roi getRoi()
          Returns the current selection, or null if there is no selection.
 java.lang.String getShortTitle()
          Returns a shortened version of image name that does not include spaces or a file name extension.
 int getSlice()
           
 ImageStack getStack()
          Returns the image stack.
 int getStackIndex(int channel, int slice, int frame)
          Returns that stack index (one-based) corresponding to the specified position.
 int getStackSize()
          If this is a stack, returns the number of slices, else returns 1.
 long getStartTime()
          Returns the time in milliseconds when startTiming() was last called.
 ImageStatistics getStatistics()
          Returns an ImageStatistics object generated using the standard measurement options (area, mean, mode, min and max).
 ImageStatistics getStatistics(int mOptions)
          Returns an ImageStatistics object generated using the specified measurement options.
 ImageStatistics getStatistics(int mOptions, int nBins)
          Returns an ImageStatistics object generated using the specified measurement options and histogram bin count.
 ImageStatistics getStatistics(int mOptions, int nBins, double histMin, double histMax)
          Returns an ImageStatistics object generated using the specified measurement options, histogram bin count and histogram range.
 java.lang.String getStringProperty(java.lang.String key)
          Returns the string value from the "Info" property string associated with 'key', or null if the key is not found.
 int getT()
          Returns the current hyperstack frame position.
 java.lang.String getTitle()
          Returns the image name.
 int getType()
          Returns the current image type (ImagePlus.GRAY8, ImagePlus.GRAY16, ImagePlus.GRAY32, ImagePlus.COLOR_256 or ImagePlus.COLOR_RGB).
 int getWidth()
           
 ImageWindow getWindow()
          Returns the ImageWindow that is being used to display this image.
 int getZ()
          Returns the current hyperstack slice position.
 void hide()
          Closes the window, if any, that is displaying this image.
 boolean imageUpdate(java.awt.Image img, int flags, int x, int y, int w, int h)
          Used by ImagePlus to monitor loading of images.
 boolean isComposite()
          Returns true if this is a CompositeImage.
 boolean isDisplayedHyperStack()
          Returns 'true' if this is a hyperstack currently being displayed in a StackWindow.
 boolean isHyperStack()
          Returns 'true' if this image is a hyperstack.
 boolean isInvertedLut()
          Returns true is this image uses an inverting LUT that displays zero as white and 255 as black.
 boolean isLocked()
          Returns 'true' if the image is locked.
 boolean isProcessor()
           
 boolean isVisible()
          Returns true if this image is currently being displayed in a window.
 void killRoi()
          Deletes the current region of interest.
 void killStack()
           
 boolean lock()
          Locks the image so other threads can test to see if it is in use.
 boolean lockSilently()
          Similar to lock, but doesn't beep and display an error message if the attempt to lock the image fails.
 void mouseMoved(int x, int y)
          Displays the cursor coordinates and pixel value in the status bar.
protected  void notifyListeners(int id)
           
 void paste()
          Inserts the contents of the internal clipboard into the active image.
static void removeImageListener(ImageListener listener)
           
 void repaintWindow()
          Calls draw to draw the image and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.
static void resetClipboard()
          Clears the internal clipboard.
 void resetDisplayRange()
           
 void resetStack()
           
 void restoreRoi()
           
 void revert()
          Implements the File/Revert command.
 void saveRoi()
           
 void setActivated()
          Called by ImageWindow.windowActivated().
 void setAntialiasRendering(boolean antialiasRendering)
          Enable/disable use of antialiasing by the flatten() method.
 void setC(int channel)
          Sets the hyperstack channel position (one based).
 void setCalibration(Calibration cal)
          Sets this image's calibration.
 void setColor(java.awt.Color c)
          Sets current foreground color.
static void setDefault16bitRange(int bitDepth)
          Set the default 16-bit display range, where 'bitDepth' must be 0 (auto-scaling), 8 (0-255), 10 (0-1023), 12 (0-4095, 15 (0-32767) or 16 (0-65535).
 void setDimensions(int nChannels, int nSlices, int nFrames)
          Sets the 3rd, 4th and 5th dimensions, where nChannels*nSlices*nFrames must be equal to the stack size.
 void setDisplayRange(double min, double max)
          Sets the display range of the current channel.
 void setDisplayRange(double min, double max, int channels)
          Sets the display range of specified channels in an RGB image, where 4=red, 2=green, 1=blue, 6=red+green, etc.
 void setFileInfo(FileInfo fi)
          Saves this image's FileInfo so it can be later retieved using getOriginalFileInfo().
 void setGlobalCalibration(Calibration global)
          Sets the system-wide calibration.
 void setHideOverlay(boolean hide)
           
 void setIgnoreFlush(boolean ignoreFlush)
           
 void setImage(java.awt.Image img)
          Replaces the image, if any, with the one specified.
 void setImage(ImagePlus imp)
          Replaces this image with the specified ImagePlus.
 void setOpenAsHyperStack(boolean openAsHyperStack)
           
 void setOverlay(Overlay overlay)
          Installs a list of ROIs that will be drawn on this image as a non-destructive overlay.
 void setOverlay(Roi roi, java.awt.Color strokeColor, int strokeWidth, java.awt.Color fillColor)
          Creates an Overlay from the specified ROI, and assigns it to this image.
 void setOverlay(java.awt.Shape shape, java.awt.Color color, java.awt.BasicStroke stroke)
          Creates an Overlay from the specified Shape, Color and BasicStroke, and assigns it to this image.
 void setPosition(int n)
          Set the current hyperstack position based on the stack index 'n' (one-based).
 void setPosition(int channel, int slice, int frame)
          Sets the current hyperstack position and updates the display, where 'channel', 'slice' and 'frame' are one-based indexes.
 void setPositionWithoutUpdate(int channel, int slice, int frame)
          Sets the current hyperstack position without updating the display, where 'channel', 'slice' and 'frame' are one-based indexes.
 void setProcessor(ImageProcessor ip)
          Replaces the ImageProcessor with the one specified and updates the display.
 void setProcessor(java.lang.String title, ImageProcessor ip)
          Replaces the ImageProcessor with the one specified and updates the display.
 void setProperty(java.lang.String key, java.lang.Object value)
          Adds a key-value pair to this image's properties.
 void setRoi(int x, int y, int width, int height)
          Creates a rectangular selection.
 void setRoi(java.awt.Rectangle r)
          Creates a rectangular selection.
 void setRoi(Roi newRoi)
          Assigns the specified ROI to this image and displays it.
 void setRoi(Roi newRoi, boolean updateDisplay)
          Assigns 'newRoi' to this image and displays it if 'updateDisplay' is true.
 void setSlice(int n)
          Displays the specified stack image, where 1<=n<=stackSize.
 void setSliceWithoutUpdate(int n)
          Displays the specified stack image (1<=n<=stackSize) without updating the display.
 void setStack(ImageStack stack)
          Replaces the image with the specified stack and updates the display.
 void setStack(ImageStack stack, int nChannels, int nSlices, int nFrames)
           
 void setStack(java.lang.String title, ImageStack newStack)
          Replaces the image with the specified stack and updates the display.
 void setT(int frame)
          Sets the hyperstack frame position (one based).
 void setTitle(java.lang.String title)
          Sets the image name.
protected  void setType(int type)
           
 void setWindow(ImageWindow win)
          This method should only be called from an ImageWindow.
 void setZ(int slice)
          Sets the hyperstack slice position (one based).
 void show()
          Opens a window to display this image and clears the status bar.
 void show(java.lang.String statusMessage)
          Opens a window to display this image and displays 'statusMessage' in the status bar.
 void startTiming()
          Calls System.currentTimeMillis() to save the current time so it can be retrieved later using getStartTime() to calculate the elapsed time of an operation.
 java.lang.String toString()
           
 void trimProcessor()
          Frees RAM by setting the snapshot (undo) buffer in the current ImageProcessor to null.
 void unlock()
          Unlocks the image.
 void updateAndDraw()
          Updates this image from the pixel data in its associated ImageProcessor, then displays it.
 void updateAndRepaintWindow()
          Calls updateAndDraw to update from the pixel data and draw the image, and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.
 void updateChannelAndDraw()
          Updates this image from the pixel data in its associated ImageProcessor, then displays it.
 void updateImage()
          ImageCanvas.paint() calls this method when the ImageProcessor has generated new image.
 void updatePosition(int c, int z, int t)
           
 void updateStatusbarValue()
          Redisplays the (x,y) coordinates and pixel value (which may have changed) in the status bar.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

GRAY8

public static final int GRAY8
8-bit grayscale (unsigned)

See Also:
Constant Field Values

GRAY16

public static final int GRAY16
16-bit grayscale (unsigned)

See Also:
Constant Field Values

GRAY32

public static final int GRAY32
32-bit floating-point grayscale

See Also:
Constant Field Values

COLOR_256

public static final int COLOR_256
8-bit indexed color

See Also:
Constant Field Values

COLOR_RGB

public static final int COLOR_RGB
32-bit RGB color

See Also:
Constant Field Values

changes

public boolean changes
True if any changes have been made to this image.


img

protected java.awt.Image img

ip

protected ImageProcessor ip

win

protected ImageWindow win

roi

protected Roi roi

currentSlice

protected int currentSlice

OPENED

protected static final int OPENED
See Also:
Constant Field Values

CLOSED

protected static final int CLOSED
See Also:
Constant Field Values

UPDATED

protected static final int UPDATED
See Also:
Constant Field Values

compositeImage

protected boolean compositeImage

width

protected int width

height

protected int height

locked

protected boolean locked

nChannels

protected int nChannels

nSlices

protected int nSlices

nFrames

protected int nFrames

dimensionsSet

protected boolean dimensionsSet
Constructor Detail

ImagePlus

public ImagePlus()
Constructs an uninitialized ImagePlus.


ImagePlus

public ImagePlus(java.lang.String title,
                 java.awt.Image img)
Constructs an ImagePlus from an Image or BufferedImage. The first argument will be used as the title of the window that displays the image. Throws an IllegalStateException if an error occurs while loading the image.


ImagePlus

public ImagePlus(java.lang.String title,
                 ImageProcessor ip)
Constructs an ImagePlus from an ImageProcessor.


ImagePlus

public ImagePlus(java.lang.String pathOrURL)
Constructs an ImagePlus from a TIFF, BMP, DICOM, FITS, PGM, GIF or JPRG specified by a path or from a TIFF, DICOM, GIF or JPEG specified by a URL.


ImagePlus

public ImagePlus(java.lang.String title,
                 ImageStack stack)
Constructs an ImagePlus from a stack.

Method Detail

lock

public boolean lock()
Locks the image so other threads can test to see if it is in use. Returns true if the image was successfully locked. Beeps, displays a message in the status bar, and returns false if the image is already locked.


lockSilently

public boolean lockSilently()
Similar to lock, but doesn't beep and display an error message if the attempt to lock the image fails.


unlock

public void unlock()
Unlocks the image.


draw

public void draw()
Draws the image. If there is an ROI, its outline is also displayed. Does nothing if there is no window associated with this image (i.e. show() has not been called).


draw

public void draw(int x,
                 int y,
                 int width,
                 int height)
Draws image and roi outline using a clip rect.


updateAndDraw

public void updateAndDraw()
Updates this image from the pixel data in its associated ImageProcessor, then displays it. Does nothing if there is no window associated with this image (i.e. show() has not been called).


updateChannelAndDraw

public void updateChannelAndDraw()
Updates this image from the pixel data in its associated ImageProcessor, then displays it. The CompositeImage class overrides this method to only update the current channel.


getChannelProcessor

public ImageProcessor getChannelProcessor()
Returns a reference to the current ImageProcessor. The CompositeImage class overrides this method so it returns the processor associated with the current channel.


getLuts

public LUT[] getLuts()

repaintWindow

public void repaintWindow()
Calls draw to draw the image and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.


updateAndRepaintWindow

public void updateAndRepaintWindow()
Calls updateAndDraw to update from the pixel data and draw the image, and also repaints the image window to force the information displayed above the image (dimension, type, size) to be updated.


updateImage

public void updateImage()
ImageCanvas.paint() calls this method when the ImageProcessor has generated new image.


hide

public void hide()
Closes the window, if any, that is displaying this image.


close

public void close()
Closes this image and sets the ImageProcessor to null. To avoid the "Save changes?" dialog, first set the public 'changes' variable to false.


show

public void show()
Opens a window to display this image and clears the status bar.


show

public void show(java.lang.String statusMessage)
Opens a window to display this image and displays 'statusMessage' in the status bar.


setActivated

public void setActivated()
Called by ImageWindow.windowActivated().


getImage

public java.awt.Image getImage()
Returns this image as a AWT image.


getBufferedImage

public java.awt.image.BufferedImage getBufferedImage()
Returns a copy of this image as an 8-bit or RGB BufferedImage.

See Also:
ShortProcessor.get16BitBufferedImage()

getID

public int getID()
Returns this image's unique numeric ID.


setImage

public void setImage(java.awt.Image img)
Replaces the image, if any, with the one specified. Throws an IllegalStateException if an error occurs while loading the image.


setImage

public void setImage(ImagePlus imp)
Replaces this image with the specified ImagePlus. May not work as expected if 'imp' is a CompositeImage and this image is not.


setProcessor

public void setProcessor(ImageProcessor ip)
Replaces the ImageProcessor with the one specified and updates the display. With stacks, the ImageProcessor must be the same type as the other images in the stack and it must be the same width and height.


setProcessor

public void setProcessor(java.lang.String title,
                         ImageProcessor ip)
Replaces the ImageProcessor with the one specified and updates the display. With stacks, the ImageProcessor must be the same type as other images in the stack and it must be the same width and height. Set 'title' to null to leave the title unchanged.


setStack

public void setStack(ImageStack stack)
Replaces the image with the specified stack and updates the display.


setStack

public void setStack(java.lang.String title,
                     ImageStack newStack)
Replaces the image with the specified stack and updates the display. Set 'title' to null to leave the title unchanged.


setStack

public void setStack(ImageStack stack,
                     int nChannels,
                     int nSlices,
                     int nFrames)

setFileInfo

public void setFileInfo(FileInfo fi)
Saves this image's FileInfo so it can be later retieved using getOriginalFileInfo().


getWindow

public ImageWindow getWindow()
Returns the ImageWindow that is being used to display this image. Returns null if show() has not be called or the ImageWindow has been closed.


isVisible

public boolean isVisible()
Returns true if this image is currently being displayed in a window.


setWindow

public void setWindow(ImageWindow win)
This method should only be called from an ImageWindow.


getCanvas

public ImageCanvas getCanvas()
Returns the ImageCanvas being used to display this image, or null.


setColor

public void setColor(java.awt.Color c)
Sets current foreground color.


isProcessor

public boolean isProcessor()

getProcessor

public ImageProcessor getProcessor()
Returns a reference to the current ImageProcessor. If there is no ImageProcessor, it creates one. Returns null if this ImagePlus contains no ImageProcessor and no AWT Image. Sets the line width to the current line width and sets the calibration table if the image is density calibrated.


trimProcessor

public void trimProcessor()
Frees RAM by setting the snapshot (undo) buffer in the current ImageProcessor to null.


getMask

public ImageProcessor getMask()
For images with irregular ROIs, returns a byte mask, otherwise, returns null. Mask pixels have a non-zero value.


getStatistics

public ImageStatistics getStatistics()
Returns an ImageStatistics object generated using the standard measurement options (area, mean, mode, min and max). This plugin demonstrates how get the area, mean and max of the current image or selection:
   public class Get_Statistics implements PlugIn {
      public void run(String arg) {
         ImagePlus imp = IJ.getImage();
         ImageStatistics stats = imp.getStatistics();
         IJ.log("Area: "+stats.area);
         IJ.log("Mean: "+stats.mean);
         IJ.log("Max: "+stats.max);
      }
   }
                

See Also:
ImageStatistics, ImageStatistics.getStatistics(ij.process.ImageProcessor, int, ij.measure.Calibration)

getStatistics

public ImageStatistics getStatistics(int mOptions)
Returns an ImageStatistics object generated using the specified measurement options. This plugin demonstrates how get the area and centroid of the current selection:
   public class Get_Statistics implements PlugIn, Measurements {
      public void run(String arg) {
         ImagePlus imp = IJ.getImage();
         ImageStatistics stats = imp.getStatistics(MEDIAN+CENTROID);
         IJ.log("Median: "+stats.median);
         IJ.log("xCentroid: "+stats.xCentroid);
         IJ.log("yCentroid: "+stats.yCentroid);
      }
   }
                

See Also:
ImageStatistics, Measurements

getStatistics

public ImageStatistics getStatistics(int mOptions,
                                     int nBins)
Returns an ImageStatistics object generated using the specified measurement options and histogram bin count. Note: except for float images, the number of bins is currently fixed at 256.


getStatistics

public ImageStatistics getStatistics(int mOptions,
                                     int nBins,
                                     double histMin,
                                     double histMax)
Returns an ImageStatistics object generated using the specified measurement options, histogram bin count and histogram range. Note: for 8-bit and RGB images, the number of bins is fixed at 256 and the histogram range is always 0-255.


getTitle

public java.lang.String getTitle()
Returns the image name.


getShortTitle

public java.lang.String getShortTitle()
Returns a shortened version of image name that does not include spaces or a file name extension.


setTitle

public void setTitle(java.lang.String title)
Sets the image name.


getWidth

public int getWidth()

getHeight

public int getHeight()

getStackSize

public int getStackSize()
If this is a stack, returns the number of slices, else returns 1.


getImageStackSize

public int getImageStackSize()
If this is a stack, returns the actual number of images in the stack, else returns 1.


setDimensions

public void setDimensions(int nChannels,
                          int nSlices,
                          int nFrames)
Sets the 3rd, 4th and 5th dimensions, where nChannels*nSlices*nFrames must be equal to the stack size.


isHyperStack

public boolean isHyperStack()
Returns 'true' if this image is a hyperstack.


getNDimensions

public int getNDimensions()
Returns the number of dimensions (2, 3, 4 or 5).


isDisplayedHyperStack

public boolean isDisplayedHyperStack()
Returns 'true' if this is a hyperstack currently being displayed in a StackWindow.


getNChannels

public int getNChannels()
Returns the number of channels.


getNSlices

public int getNSlices()
Returns the image depth (number of z-slices).


getNFrames

public int getNFrames()
Returns the number of frames (time-points).


getDimensions

public int[] getDimensions()
Returns the dimensions of this image (width, height, nChannels, nSlices, nFrames) as a 5 element int array.


getDimensions

public int[] getDimensions(boolean varify)

getType

public int getType()
Returns the current image type (ImagePlus.GRAY8, ImagePlus.GRAY16, ImagePlus.GRAY32, ImagePlus.COLOR_256 or ImagePlus.COLOR_RGB).

See Also:
getBitDepth()

getBitDepth

public int getBitDepth()
Returns the bit depth, 8, 16, 24 (RGB) or 32. RGB images actually use 32 bits per pixel.


getBytesPerPixel

public int getBytesPerPixel()
Returns the number of bytes per pixel.


setType

protected void setType(int type)

getStringProperty

public java.lang.String getStringProperty(java.lang.String key)
Returns the string value from the "Info" property string associated with 'key', or null if the key is not found. Works with DICOM tags and Bio-Formats metadata.

See Also:
getNumericProperty(java.lang.String), getInfoProperty()

getNumericProperty

public double getNumericProperty(java.lang.String key)
Returns the numeric value from the "Info" property string associated with 'key', or NaN if the key is not found or the value associated with the key is not numeric. Works with DICOM tags and Bio-Formats metadata.

See Also:
getStringProperty(java.lang.String), getInfoProperty()

getProp

public java.lang.String getProp(java.lang.String key)
Deprecated. 

See Also:
getStringProperty(java.lang.String)

getInfoProperty

public java.lang.String getInfoProperty()
Returns the "Info" property string, or null if it is not found.


getProperty

public java.lang.Object getProperty(java.lang.String key)
Returns the property associated with 'key', or null if it is not found.

See Also:
getStringProperty(java.lang.String), getNumericProperty(java.lang.String), getInfoProperty()

setProperty

public void setProperty(java.lang.String key,
                        java.lang.Object value)
Adds a key-value pair to this image's properties. The key is removed from the properties table if value is null.


getProperties

public java.util.Properties getProperties()
Returns this image's Properties. May return null.


createLut

public LookUpTable createLut()
Creates a LookUpTable object that corresponds to this image.


isInvertedLut

public boolean isInvertedLut()
Returns true is this image uses an inverting LUT that displays zero as white and 255 as black.


getPixel

public int[] getPixel(int x,
                      int y)
Returns the pixel value at (x,y) as a 4 element array. Grayscale values are retuned in the first element. RGB values are returned in the first 3 elements. For indexed color images, the RGB values are returned in the first 3 three elements and the index (0-255) is returned in the last.


createEmptyStack

public ImageStack createEmptyStack()
Returns an empty image stack that has the same width, height and color table as this image.


getStack

public ImageStack getStack()
Returns the image stack. The stack may have only one slice. After adding or removing slices, call setStack() to update the image and the window that is displaying it.

See Also:
setStack(ij.ImageStack)

getImageStack

public ImageStack getImageStack()
Returns the base image stack.


getCurrentSlice

public int getCurrentSlice()
Returns the current stack index (one-based) or 1 if this is a single image.


getChannel

public int getChannel()

getSlice

public int getSlice()

getFrame

public int getFrame()

killStack

public void killStack()

setPosition

public void setPosition(int channel,
                        int slice,
                        int frame)
Sets the current hyperstack position and updates the display, where 'channel', 'slice' and 'frame' are one-based indexes.


setPositionWithoutUpdate

public void setPositionWithoutUpdate(int channel,
                                     int slice,
                                     int frame)
Sets the current hyperstack position without updating the display, where 'channel', 'slice' and 'frame' are one-based indexes.


setC

public void setC(int channel)
Sets the hyperstack channel position (one based).


setZ

public void setZ(int slice)
Sets the hyperstack slice position (one based).


setT

public void setT(int frame)
Sets the hyperstack frame position (one based).


getC

public int getC()
Returns the current hyperstack channel position.


getZ

public int getZ()
Returns the current hyperstack slice position.


getT

public int getT()
Returns the current hyperstack frame position.


getStackIndex

public int getStackIndex(int channel,
                         int slice,
                         int frame)
Returns that stack index (one-based) corresponding to the specified position.


resetStack

public void resetStack()

setPosition

public void setPosition(int n)
Set the current hyperstack position based on the stack index 'n' (one-based).


convertIndexToPosition

public int[] convertIndexToPosition(int n)
Converts the stack index 'n' (one-based) into a hyperstack position (channel, slice, frame).


setSlice

public void setSlice(int n)
Displays the specified stack image, where 1<=n<=stackSize. Does nothing if this image is not a stack.

See Also:
setPosition(int, int, int), setC(int), setZ(int), setT(int)

setSliceWithoutUpdate

public void setSliceWithoutUpdate(int n)
Displays the specified stack image (1<=n<=stackSize) without updating the display.


getRoi

public Roi getRoi()
Returns the current selection, or null if there is no selection.


setRoi

public void setRoi(Roi newRoi)
Assigns the specified ROI to this image and displays it. Any existing ROI is deleted if roi is null or its width or height is zero.


setRoi

public void setRoi(Roi newRoi,
                   boolean updateDisplay)
Assigns 'newRoi' to this image and displays it if 'updateDisplay' is true.


setRoi

public void setRoi(int x,
                   int y,
                   int width,
                   int height)
Creates a rectangular selection.


setRoi

public void setRoi(java.awt.Rectangle r)
Creates a rectangular selection.


createNewRoi

public void createNewRoi(int sx,
                         int sy)
Starts the process of creating a new selection, where sx and sy are the starting screen coordinates. The selection type is determined by which tool in the tool bar is active. The user interactively sets the selection size and shape.


deleteRoi

public void deleteRoi()
Deletes the current region of interest. Makes a copy of the ROI so it can be recovered by Edit/Selection/Restore Selection.


killRoi

public void killRoi()
Deletes the current region of interest.


saveRoi

public void saveRoi()

restoreRoi

public void restoreRoi()

revert

public void revert()
Implements the File/Revert command.


getFileInfo

public FileInfo getFileInfo()
Returns a FileInfo object containing information, including the pixel array, needed to save this image. Use getOriginalFileInfo() to get a copy of the FileInfo object used to open the image.

See Also:
FileInfo, getOriginalFileInfo(), setFileInfo(ij.io.FileInfo)

getOriginalFileInfo

public FileInfo getOriginalFileInfo()
Returns the FileInfo object that was used to open this image. Returns null for images created using the File/New command.

See Also:
FileInfo, getFileInfo()

imageUpdate

public boolean imageUpdate(java.awt.Image img,
                           int flags,
                           int x,
                           int y,
                           int w,
                           int h)
Used by ImagePlus to monitor loading of images.

Specified by:
imageUpdate in interface java.awt.image.ImageObserver

flush

public void flush()
Sets the ImageProcessor, Roi, AWT Image and stack image arrays to null. Does nothing if the image is locked.


setIgnoreFlush

public void setIgnoreFlush(boolean ignoreFlush)

duplicate

public ImagePlus duplicate()
Returns a copy (clone) of this ImagePlus.


createImagePlus

public ImagePlus createImagePlus()
Returns a new ImagePlus with this image's attributes (e.g. spatial scale), but no image.


createHyperStack

public ImagePlus createHyperStack(java.lang.String title,
                                  int channels,
                                  int slices,
                                  int frames,
                                  int bitDepth)
This method has been replaced by IJ.createHyperStack().


copyScale

public void copyScale(ImagePlus imp)
Copies the calibration of the specified image to this image.


copyAttributes

public void copyAttributes(ImagePlus imp)
Copies attributes (name, ID, calibration, path) of the specified image to this image.


startTiming

public void startTiming()
Calls System.currentTimeMillis() to save the current time so it can be retrieved later using getStartTime() to calculate the elapsed time of an operation.


getStartTime

public long getStartTime()
Returns the time in milliseconds when startTiming() was last called.


getCalibration

public Calibration getCalibration()
Returns this image's calibration.


setCalibration

public void setCalibration(Calibration cal)
Sets this image's calibration.


setGlobalCalibration

public void setGlobalCalibration(Calibration global)
Sets the system-wide calibration.


getGlobalCalibration

public Calibration getGlobalCalibration()
Returns the system-wide calibration, or null.


getLocalCalibration

public Calibration getLocalCalibration()
Returns this image's local calibration, ignoring the "Global" calibration flag.


mouseMoved

public void mouseMoved(int x,
                       int y)
Displays the cursor coordinates and pixel value in the status bar. Called by ImageCanvas when the mouse moves. Can be overridden by ImagePlus subclasses.


updateStatusbarValue

public void updateStatusbarValue()
Redisplays the (x,y) coordinates and pixel value (which may have changed) in the status bar. Called by the Next Slice and Previous Slice commands to update the z-coordinate and pixel value.


getLocationAsString

public java.lang.String getLocationAsString(int x,
                                            int y)
Converts the current cursor location to a string.


copy

public void copy()
Copies the contents of the current selection, or the entire image if there is no selection, to the internal clipboard.


copy

public void copy(boolean cut)
Copies the contents of the current selection to the internal clipboard. Copies the entire image if there is no selection. Also clears the selection if cut is true.


paste

public void paste()
Inserts the contents of the internal clipboard into the active image. If there is a selection the same size as the image on the clipboard, the image is inserted into that selection, otherwise the selection is inserted into the center of the image.


getClipboard

public static ImagePlus getClipboard()
Returns the internal clipboard or null if the internal clipboard is empty.


resetClipboard

public static void resetClipboard()
Clears the internal clipboard.


notifyListeners

protected void notifyListeners(int id)

addImageListener

public static void addImageListener(ImageListener listener)

removeImageListener

public static void removeImageListener(ImageListener listener)

isLocked

public boolean isLocked()
Returns 'true' if the image is locked.


setOpenAsHyperStack

public void setOpenAsHyperStack(boolean openAsHyperStack)

getOpenAsHyperStack

public boolean getOpenAsHyperStack()

isComposite

public boolean isComposite()
Returns true if this is a CompositeImage.


getCompositeMode

public int getCompositeMode()
Returns the display mode (IJ.COMPOSITE, IJ.COLOR or IJ.GRAYSCALE) if this is a CompositeImage, otherwise returns -1.


setDisplayRange

public void setDisplayRange(double min,
                            double max)
Sets the display range of the current channel. With non-composite images it is identical to ip.setMinAndMax(min, max).


getDisplayRangeMin

public double getDisplayRangeMin()

getDisplayRangeMax

public double getDisplayRangeMax()

setDisplayRange

public void setDisplayRange(double min,
                            double max,
                            int channels)
Sets the display range of specified channels in an RGB image, where 4=red, 2=green, 1=blue, 6=red+green, etc. With non-RGB images, this method is identical to setDisplayRange(min, max). This method is used by the Image/Adjust/Color Balance tool .


resetDisplayRange

public void resetDisplayRange()

setDefault16bitRange

public static void setDefault16bitRange(int bitDepth)
Set the default 16-bit display range, where 'bitDepth' must be 0 (auto-scaling), 8 (0-255), 10 (0-1023), 12 (0-4095, 15 (0-32767) or 16 (0-65535).


getDefault16bitRange

public static int getDefault16bitRange()
Returns the default 16-bit display range, 0 (auto-scaling), 8, 10, 12, 15 or 16.


updatePosition

public void updatePosition(int c,
                           int z,
                           int t)

flatten

public ImagePlus flatten()
Returns a "flattened" version of this image, in RGB format.


flattenStack

public void flattenStack()
Flattens all slices of this stack or HyperStack.

Throws:
java.lang.UnsupportedOperationException - if this image
does not have an overlay and the RoiManager overlay is null
or Java version is less than 1.6. Copied from OverlayCommands and modified by Marcel Boeglin on 2014.01.08 to work with HyperStacks.

setOverlay

public void setOverlay(Overlay overlay)
Installs a list of ROIs that will be drawn on this image as a non-destructive overlay.

See Also:
Roi.setStrokeColor(java.awt.Color), Roi.setStrokeWidth(float), Roi.setFillColor(java.awt.Color), Roi.setLocation(int, int), Roi.setNonScalable(boolean)

setOverlay

public void setOverlay(java.awt.Shape shape,
                       java.awt.Color color,
                       java.awt.BasicStroke stroke)
Creates an Overlay from the specified Shape, Color and BasicStroke, and assigns it to this image.

See Also:
setOverlay(ij.gui.Overlay), Roi.setStrokeColor(java.awt.Color), Roi.setStrokeWidth(float)

setOverlay

public void setOverlay(Roi roi,
                       java.awt.Color strokeColor,
                       int strokeWidth,
                       java.awt.Color fillColor)
Creates an Overlay from the specified ROI, and assigns it to this image.

See Also:
setOverlay(ij.gui.Overlay)

getOverlay

public Overlay getOverlay()
Returns the current overly, or null if this image does not have an overlay.


setHideOverlay

public void setHideOverlay(boolean hide)

getHideOverlay

public boolean getHideOverlay()

setAntialiasRendering

public void setAntialiasRendering(boolean antialiasRendering)
Enable/disable use of antialiasing by the flatten() method.


clone

public java.lang.Object clone()
Returns a shallow copy of this ImagePlus.

Overrides:
clone in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object