This page was created by the IDL library routine
mk_html_help. For more information on
this routine, refer to the IDL Online Help Navigator
or type:
? mk_html_help
at the IDL command line prompt.
Last modified: Sun Oct 26 20:43:11 2008.
NAME:
CATDATAATOM
PURPOSE:
This is the most basic data object in the CATALYST Object Library. It is a subclassed
CATATOM object and implements a generic data class in the IDL object hierarchy.
All data objects in the heirarchy are subclassed from this object. The fundamental
principal of the Catalyst Library is that data is associated with colors (for display)
and a coordinate system (for interaction). Thus, there are placeholders in CATDATAATOM
for a COLORTOOL and a CATCOORD object (or their equivalents). (There is also a placeholder
for tools that work on the data, but this has been less frequently employed.)
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
SUPERCLASSES:
CATATOM
CATCONTAINER
IDL_CONTAINER
SYNTAX:
dataObject = Obj_New('CATDATA')
CLASS_DEFINITION:
class = { CATDATAATOM, $ ; The CATDATAATOM class name.
_dataPtr : PTR_NEW(), $ ; A pointer to the data
_coords : OBJ_NEW(), $ ; A CATCOORD object of some type.
_colors : OBJ_NEW(), $ ; A COLORTOOL object for setting up color tables.
_toolList : OBJ_NEW(), $ ; The TOOLLIST object.
INHERITS CATATOM $ ; CATDATA is an CATATOM object.
}
MODIFICATION_HISTORY:
Written by: David Burridge, 27th March 2003.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::AddTool
PURPOSE:
This method adds an object (presumably a tool object) to the ToolList for this object.
SYNTAX:
self -> AddTool, object
ARGUMENTS:
OBJECT: The object to be added.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::APPLYCOLORS
PURPOSE:
This method sets up the colors for the data object if they exist. For this
reason, sub-classes *MUST* call this method at the *START* of their draw methods.
SYNTAX:
self -> ApplyColors
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::APPLYCOORDS
PURPOSE:
This method sets up the coordinates for the data object if they exist. For this
reason, sub-classes *MUST* call this method at the *START* of their draw methods.
SYNTAX:
self -> ApplyCoords
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::CLEANUP
PURPOSE:
This is the CATDATAATOM object class destructor method.
SYNTAX:
Called automatically when the object is destroyed thus:
OBJ_DESTROY, dataObject
ARGUMENTS:
None.
KEYWORDS:
_EXTRA: Any keyword appropriate for the CATATOM::CLEANUP method.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::GetData
PURPOSE:
This function method enables data to be retreived from this object. It is written
for internal use and should not be called without due consideration. All data
handling should be done inside the object.
SYNTAX:
data = imageObject -> GetData (Success=s)
ARGUMENTS:
None.
KEYWORDS:
SUCCESS: This flag shows whether the get has been successful or not.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::GETPROPERTY
PURPOSE:
This method is used to get the object's properties.
SYNTAX:
dataObject -> GetProperty, Data=data
ARGUMENTS:
None.
KEYWORDS:
COLOR_OBJECT: Use this keyword to get the contained COLORTOOL object.
COORD_OBJECT: Use this keyword to get the contained CATCOORD object.
TOOLLIST: The object's toolist object.
UNDO_LIMIT: The current undo limit for the data object.
_REF_EXTRA: Any keyword appropriate for the GETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::INIT
PURPOSE:
This method is used upon object creation.
SYNTAX:
Called automatically when the object is created thus:
dataObject = OBJ_NEW (CatDataAtom, Hanning (50,50))
ARGUMENTS:
DATA: Some data to use in the object (optional).
KEYWORDS:
COLOR_OBJECT: Use this keyword to load a color object for setting up colors
for data display.
COORD_OBJECT: Use this keyword to load a coordinate object for setting up
the data coordinate system for data display.
NO_COPY: Set this keyword to "move" supplied data into the object rather than
make a copy. Note that this will leave the input "data" variable
undefined.
PARENT: The object reference to the parent of this object.
UNDO_LIMIT: The number of tools kept in the undo buffer. This is set to 5 by default.
_EXTRA: Any keyword appropriate for the INIT method of the superclass object.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::REDO
PURPOSE:
This method allows a previous UNDO to be reversed.
SYNTAX:
dataObject -> REDO
ARGUMENTS:
None.
KEYWORDS:
Draw: Set this keyword to allow the object to DRAW itself at the completion of the REDO.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::SetData
PURPOSE:
This method enables new data to be added to this object.
SYNTAX:
imageObject -> SetData, Dist(40,40), /Draw
ARGUMENTS:
DATA: The data to be added. Note that any existing data will be removed, so this
routine should be used with caution!
KEYWORDS:
DRAW: Set this keyword makes the object DRAW itself once the data is loaded.
NO_COPY: Set this keyword to "move" supplied data into the object rather than
make a copy. Note that this will leave the input "data" variable
undefined.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::SETPROPERTY
PURPOSE:
This method is used to get the object's properties.
SYNTAX:
dataObject -> SetProperty, Data=data
ARGUMENTS:
None.
KEYWORDS:
COLOR_OBJECT: Use this keyword to load a color object for setting up colors
for data display.
COORD_OBJECT: Use this keyword to load a coordinate object for setting up
the data coordinate system for data display.
DRAW: Set this keyword makes the object DRAW itself once the data is loaded.
UNDO_LIMIT: The number of tools kept in the undo buffer.
_EXTRA: Any keyword appropriate for the SETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CATDATAATOM::UNDO
PURPOSE:
This method performs a one-step "undo" of the object on the UNDO LIST.
SYNTAX:
dataObject -> UNDO
ARGUMENTS:
None.
KEYWORDS:
DRAW: Set this keyword to immediately call the draw method of the object
when the UNDO is finished.
_Extra: Extra keywords appropriate for toollist UNDO method.
(See C:\IDL\Catalyst\source\data\catdataatom__define.pro)
NAME:
CatImage
PURPOSE:
This object implements a class for handling image data. It is a subclassed
CATDATAATOM object and can be subclassed for specific image implementations.
Out first attempts to define an image object class resulted in the three
object classes CatImageData, CatImage2D, and CatTrueColorImage. These are
still used in Catalyst applications, but are included more for historical
reasons than for practical reasons. These days all image object implementations
start with CatImage (or, more likely, with ScaleImage, which is subclassed from
CatImage). It is our recommendation that you start your own object implementation
from this CatImage object.
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
SUPERCLASSES:
CATDATAATOM
CATATOM
CATCONTAINER
IDL_CONTAINER
SYNTAX:
imageObject = OBJ_NEW ('CatImage', image)
CLASS DEFINITION:
class = { CatImage, $ ; The CatImage object class.
_displayImage: Ptr_New(), $ ; The byte-scaled, congridded image for display.
_display_mode: 0B, $ ; A flag indicating which display method to use for drawing.
_keep_aspect: 0L, $ ; Flag: Keep the aspect ratio when calculating image position.
_location : DblArr(6,2), $ ; Location information about the "displayed" image.
_interleaving : 0L, $ ; The type of pixel interleaving for this image.
_interpolate: 0L, $ ; Flag: When set, bilinear interpolation is used.
_order : 0L, $ ; Image display order.
_out_xsize : 0L, $ ; The output X size of the image. (Display_Mode=1 and Display_Mode=2)
_out_ysize : 0L, $ ; The output Y size of the image. (Display_Mode=1 and Display_Mode=2)
_position : DblArr(4), $ ; The position of the image in the output window. (Display_Mode=0)
_scale : 0.0, $ ; The zoom scale factor.
_x1 : 0L, $ ; The starting X coordinate in the zoom.
_x2 : 0L, $ ; The ending X coordinate in the zoom.
_y1 : 0L, $ ; The starting Y coordinate in the zoom.
_y2 : 0L, $ ; The ending Y coordinate in the zoom.
_xsize : 0L, $ ; The X size of the image.
_xstart : 0L, $ ; The starting X location for displaying image. (Display_Mode=1)
_ysize : 0L, $ ; The Y size of the image.
_ystart : 0L, $ ; The starting Y location for displaying image. (Display_Mode=1)
_wid : Obj_New(), $ ; The window object where this image should be displayed.
_window_position: 0L, $ ; The window position for displaying this image. (Display_Mode=2)
_zoomcoords : Obj_New(), $ ; A coordinate object for the zoom capability.
INHERITS CatDataAtom $ ; Subclassed from CATDATAATOM.
}
MODIFICATION_HISTORY:
Written by: David W. Fanning, 27 March 2003.
Added PAN, ZOOMIN, and ZOOMOUT methods 25 June 2004. DWF.
Removed MINUS_ONE keywords from the CONGRIDs in CreateDisplayImage.
They caused me to get, for example, 15 colors instead of 16 when I
restricted the number of colors in the image. 5 July 2005. DWF.
Fixed a bug in Pixel_To_Value method that caused value to be slightly off.
This was most noticable with really small images. 10 Oct 2008. DWF.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CATIMAGE2D
PURPOSE:
This object implements a class for handling 2D image data. It is a subclassed
ImageData object and can be subclassed for specific image implementations.
This object was an early attempt at creating an image object for the Catalyst
Library, and has been depreciated it favor of CatImage. It is left in the Library
for historical reasons and because there are Catalyst applications that use it.
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
SUPERCLASSES:
CATIMAGEDATA
CATDATAATOM
CATATOM
CATCONTAINER
IDL_CONTAINER
SYNTAX:
imageObject = OBJ_NEW ('CATIMAGE2D', image)
CLASS_DEFINITION:
class = { CATIMAGE2D, $ ; The CATIMAGE2D object class.
INHERITS CatImageData, $ ; Inherits the CatImageData object class. MUST be inherited first.
_smooth_width: 0L, $ ; The width value for the SMOOTH operation.
_median_width: 0L $ ; The width value for the MEDIAN operation.
}
MODIFICATION_HISTORY:
Written by: David Fanning, 27 March 2003.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CATIMAGE2D::CONTROLPANEL
PURPOSE:
This method creates a control panel for the object
SYNTAX:
imageObject -> ControlPanel, baseObj
ARGUMENTS:
baseObject: The object reference of a base widget for this control to
be added to. If not supplied, the control panel will be a
self contained window.
KEYWORDS:
_EXTRA: Any keywords appropriate for the "CONTROLPANEL::INIT" method.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CATIMAGE2D::EVENTHANDLER
PURPOSE:
This method is an event handler for the Control Panel.
SYNTAX:
Called automatically by the event handling system
ARGUMENTS:
event: The event structure.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CATIMAGE2D::GETPROPERTY
PURPOSE:
This method allows the user to obtain CATIMAGE2D properties.
SYNTAX:
theObject -> GetProperty ...
ARGUMENTS:
None.
KEYWORDS:
MEDIAN_WIDTH: The size of the two-dimensional neighborhood to use with the MEDIAN function.
SMOOTH_WIDTH: The size of the two-dimensional neighborhood to use with the SMOOTH function.
__REF_EXTRA: Any keyword appropriate for the SETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CATIMAGE2D::INIT
PURPOSE:
This method is used upon object creation.
SYNTAX:
Called automatically when the object is created thus:
imageObject = OBJ_NEW ('CatImage2D', image)
ARGUMENTS:
image The 2D image array of any data type.
KEYWORDS:
MEDIAN_WIDTH: The size of the two-dimensional neighborhood to use with the MEDIAN function.
SMOOTH_WIDTH: The size of the two-dimensional neighborhood to use with the SMOOTH function.
_EXTRA: Any keyword appropriate for the INIT method of the superclass object or for
the LoadImage method.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CATIMAGE2D::LOADIMAGE
PURPOSE:
This method is used to load images into the object.
SYNTAX:
imageObject -> LOADIMAGE
ARGUMENTS:
None.
INPUT_KEYWORDS:
_EXTRA: Any keyword appropriate for the ImageData::LOADIMAGE method.
OUTPUT_KEYWORDS:
CANCEL: This keyword is set to 1 if the user exits the program in any way except
hitting the ACCEPT button. The ACCEPT button will set this keyword to 0.
FILEINFO: This keyword returns information about the selected file. Obtained from the QUERY_**** functions.
OUTDIRECTORY: The directory where the selected file is found.
OUTFILENAME: The short filename of the selected file.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CATIMAGE2D::PIXEL_TO_VALUE
PURPOSE:
This method calculates the original image value underneath a pixel location
in the display window. To be accurate, the window that contains the image
MUST BE the current graphics window or you MUST PASS the window number in
with the WINDOWINDEX keyword. This is NOT nessarily the value of the image
in the display window. It is the original image value.
SYNTAX:
image_value = imageObject -> Pixel_to_Value(x, y)
RETURN_VALUE:
image_value: The image value at image[x,y]
ARGUMENTS:
X: The x location in the display window (pixel coordinates).
Y: The y location in the display window (pixel coordinates).
INPUT_KEYWORDS:
OUTSIDE: The value to represent "outside" the image. Default is !Values.F_NAN.
OUTPUT_KEYWORDS:
DISPLAY_VALUE: Set this keyword to a named variable that will contain the value
of the display image, rather than the original image.
INSIDE: Returns a 1 if the (x,y) values are inside the image and 0 otherwise.
WINDOWINDEX: The window index number of the window containing the image object. Set
to !D.Window by default.
XDATA: The x data value with respect to the image data coordinate system,
XPIXEL: The x pixel value in terms of image (rather than window) device coordinates.
YDATA: The y data value with respect to the image data coordinate system,
YPIXEL: The y pixel value in terms of image (rather than window) device coordinates.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CATIMAGE2D::SETPROPERTY
PURPOSE:
This method is used to set properties of the CATIMAGE2D object
SYNTAX:
imageObject -> SETPROPERTY, Image=newImage
ARGUMENTS:
None.
KEYWORDS:
IMAGE: A 2D image array to load into the object.
MEDIAN_WIDTH: The size of the two-dimensional neighborhood to use with the MEDIAN function.
SMOOTH_WIDTH: The size of the two-dimensional neighborhood to use with the SMOOTH function.
_EXTRA: Any keyword appropriate for the SETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\catimage2d__define.pro)
NAME:
CatImage::CLEANUP
PURPOSE:
This is the CatImage object class destructor method.
SYNTAX:
Called automatically when the object is destroyed thus:
OBJ_DESTROY, imageObject
ARGUMENTS:
None.
KEYWORDS:
_EXTRA: Any keyword appropriate for the DATAATOM::CLEANUP method.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::CONTROLPANEL
PURPOSE:
This method creates a control panel for the CATIMAGE object. A
control panel is a graphical user interface for setting object
properties. If you create a control panel, the events are typically
sent to the EVENTHANDLER method.
SYNTAX:
theObject -> ControlPanel, baseObject
ARGUMENTS:
baseObject: The object reference of a base widget for this control to
be added to. If not supplied, the control panel will be in a
self contained window (i.e., a TOPLEVELBASE object).
KEYWORDS:
_EXTRA: Any keywords appropriate for the CatControlPanel::INIT method.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::COPYPARAMETERS
PURPOSE:
This method returns the lower-left corner of the bounary box
in the DESTINATION keyword, and the number of columns and rows
in the boundary box in the EXTENT keyword, all in window or pixel
coordinates. It's purpose is to return a section of a pixmap, for
example, so that only that section can be copied.
SYNTAX:
theObject -> CopyParameters, drawid, DESTINATION=destination, EXTENT=extent
ARGUMENTS:
drawID: The identifier of a draw widget object whose extent will
provide the size of the window for calculating device coordinates.
This parameter is required.
KEYWORDS:
DESTINATION: A two-element array containing the lower-left corner
of the boundary box in device coordinates. An output keyword.
EXTENT: A two-element array containing the number of columns and
rows in the boundary box in device coordinates. An output keyword.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::CREATEDISPLAYIMAGE
PURPOSE:
This method creates a display image for the object
SYNTAX:
imageObject -> CreateDisplayImage
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::DRAW
PURPOSE:
This method draws the image to the display based on the current DISPLAY_MODE
in effect for the widget.
SYNTAX:
imageObject -> Draw
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::DRAW_MODE_0
PURPOSE:
This display mode position's the image in the display window based
on the POSITION of the image.
SYNTAX:
imageObject -> Draw_Mode_0
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::DRAW_MODE_1
PURPOSE:
This display mode position's the image in the display window based
on the lower-left corner of the image.
SYNTAX:
imageObject -> Draw_Mode_1
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::DRAW_MODE_2
PURPOSE:
This display mode position's the image in the display window based
on a window position parameter.
SYNTAX:
imageObject -> Draw_Mode_2
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::EVENT_HANDLER
PURPOSE:
This method is the event handler for the CATIMAGE object. It will typically
be used to respond to events from widget objects created in the CONTROLPANEL
method.
SYNTAX:
This method is called automatically by the event handling mechanism.
ARGUMENTS:
event: The event structure as described in the IDL help files, except
that the ID, TOP and HANDLER tags will be object references.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::GETPROPERTY
PURPOSE:
This method is used to get properties of the CatImage object
SYNTAX:
imageObject -> GETPROPERTY, XSIZE=xsize, YSIZE=ysize
ARGUMENTS:
None.
KEYWORDS:
ASPECT_RATIO: The aspect ratio of the image: ysize/xsize.
AXES: The image axes object for this image. If not available, a null object.
DIMENSIONS: The dimensions of the image (e.g, Size(image, /DIMENSIONS).
IMAGE: The image data.
KEEP_ASPECT: The keep aspect ratio flag.
LOCATION: A 6-by-2 floating array containing information about the position of the
"displayed" image, which is updated after every image DRAW. The first two
elements (location[0:1,0] contain the X and Y positions of the
lower-left corner of the image (device units), the next two elements
(location[2:3,0]) the X and Y positions of the upper-right corner of the
image (device units)), and the last two elements contain the X and Y size of
the display window (device units). The location[*,1] elements are
exactly the same as the location[*,0] elements, except they are
expressed in normalized (0 to 1) coordinates.
MINMAX: A two-element array giving the minimum and maximum value of the orginal image data.
N_DIMENSIONS: The number of dimensions of the image (e.g, Size(image, /N_DIMENSIONS).
NOINTERPOLATE: The nointerpolate flag.
ORDER: The display order of the image.
OUT_XSIZE: The X size of the image on the display.
OUT_YSIZE: The Y size of the image on the display.
POSITION: A four-element vector giving the position of the image in the
display window in normalized coordinates: [x0, y0, x1, y1].
SELECTABLE: Set to 1 if the image is selectable.
TRUEINDEX: Set the the index of the "3" in a true-color image, or to -1 otherwise.
XSIZE: The X size of the image.
XSTART: The X location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
YSIZE: The Y size of the image.
YSTART: The Y location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
VISIBLE: Set to 1 if the image is visible.
WID: The window object where this image will be displayed.
WINDOW_POSITION: A single number that gives a "window position" for displaying the image.
The same as calling the TV command with a single positional parameter other
than the image.
ZOOM_COORD: The zoom coordinate system.
ZOOMRECT: The coordinates of the zoom rectangle in the image in the form [x1, y1, x2, y2].
The coordinates are in the image pixel coordinate system (e.g., 0 to self._xsize-1).
_REF_EXTRA: Any keyword appropriate for the DATAATOM::GETPROPERTY method.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::INIT
PURPOSE:
This method is used upon object creation.
SYNTAX:
Called automatically when the object is created thus:
imageObject = OBJ_NEW ('CatImage', image)
ARGUMENTS:
image The image array of any data type.
KEYWORDS:
AXES: Set this keyword to add axes to the image display. Or, set this
keyword to an axis object.
DISPLAY_MODE: Images can be displayed in any of three display "modes". Display Mode 0 is
the default and allows images to be positioned in the window using the
POSITION keyword. Display Mode 1 is the standard "TV" display mode in which
the image is positioned with respect to its lower-left corner in the
display window. Display Mode 2 is the standard "TV" display mode in which
the image is positioned in the window according to the WINDOW_POSITION.
PAN and ZOOM capability is only available when in DISPLAY_MODE=0.
NOINTERPOLATE: If the image is resized to fit the window, this keyword, if set, will
cause nearest neighbor interpolation of image values to be used. The
default is to use bilinear interpolation. Applies only to DISPLAY_MODE=0.
KEEP_ASPECT: If this keyword is set, the POSITION of the image in the window
is always adjusted to preserve the image aspect ratio (ratio of height
divided by width). Otherwise, the image is resized arbitrarily. Applies
only to DISPLAY_MODE=0.
NO_COPY: If this keyword is set, the image data is transfered directly to the object
and not copied. The image parameter will become undefined if this keyword is set.
ORDER: The display order of the image. We seriously recommend that you NOT use this
keyword!! Instead, use REVERSE to change the Y values of your image:
image = Reverse(image,1)
POSITION: The position of the image in the display window. The position is given
as a four-element array in normalized (0 to 1) coordinates of the form
[x0, y0, x1, y1], where (x0,y0) is the lower-left corner of the image and
(x1,y1) is the upper-right corner of the image. If the KEEP_ASPECT keyword
is set, the image will be located within the specified POSITION in a way
that preserves the aspect ratio of the image. For the image's exact location
in the window after it has been displayed, use the LOCATION keyword to the
GetProperty method.
SELECTABLE: Set this keyword to make the image selectable.
XSIZE: The desired X size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
XSTART: The X location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
YSIZE: The desired Y size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
YSTART: The Y location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
WID: The window object where this image is to be displayed. Use this with some trepidation,
because having an image wedded to a particular window can cause difficulties for
pixmaps and interaction objects. Better to write code so that the image does not
know where it is drawn. Still, it is sometimes useful to have this functionality.
WINDOW_POSITION: A single number that gives a "window position" for displaying the image.
The same as calling the TV command with a single positional parameter other
than the image.
_EXTRA: Any keyword appropriate for the INIT method of the superclass object.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::MESSAGEHANDLER
PURPOSE:
This method responds to "messages" sent from other objects. It is called
automatically by other objects. To receive messages, it is necessary to
"register" with the messaging object.
SYNTAX:
None. Called by other objects.
ARGUMENTS:
TITLE: The message title. This is the "name" of the message indicated when
the object registered for messages with the messaging object.
KEYWORDS:
DATA: Information from the SENDER that may be relevant in processing the message.
Typically, an anonymous structure variable, although it could be anything at all.
SENDER: An output keyword. This is the object reference of the object that is sending
the message.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::MOVE
PURPOSE:
This method moves the image in a graphics window.
SYNTAX:
theObject -> Move, x, y
ARGUMENTS:
X: The number of pixels to move in the X direction.
Y: The number of pixels to move in the Y direction.
KEYWORDS:
NODRAW: If this keyword is set, only the coordinates are updated. No drawing occurs.
PIXMAP: Set this keyword to a pixmap that can be used to erase the previous
contents of the window.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::PAN
PURPOSE:
This method pans the image.
SYNTAX:
theImage -> Pan, movex, movey
ARGUMENTS:
movex: The number of (window) pixels to move in the X direction.
movey: The number of (window) pixels to move in the Y direction.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::PIXEL_TO_VALUE
PURPOSE:
This method calculates the original image value underneath a pixel location
in the display window. To be accurate, the window that contains the image
MUST BE the current graphics window. To be certain of this, use the WID
keyword in the INIT or SetProperty methods to associate an image with its
display window.
SYNTAX:
image_value = imageObject -> Pixel_to_Value(x, y)
RETURN_VALUE:
image_value: The image value at image[x,y]. For 2D images, a single value. For
true-color images a three-element array representing the RGB values
at that image pixel.
ARGUMENTS:
X: The x location in the display window (pixel coordinates).
Y: The y location in the display window (pixel coordinates).
OUTPUT_KEYWORDS:
INSIDE: Returns a 1 if the (x,y) values are inside the image and 0 otherwise. No values
are returned in other keywords if the point is not inside the image.
XDATA: The x data value with respect to the image data coordinate system,
XPIXEL: The x pixel value in terms of image (rather than window) device coordinates.
YDATA: The y data value with respect to the image data coordinate system,
YPIXEL: The y pixel value in terms of image (rather than window) device coordinates.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::POINT_INSIDE
PURPOSE:
This method returns a 1 if the specified point is inside the image, and a 0
if the specified point is outside the image.
SYNTAX:
is_inside = imageObject -> Point_Inside(x, y)
ARGUMENTS:
x: The X value of the point in window or pixel coordinates.
y: The Y value of the point in window or pixel coordinates.
KEYWORDS:
None
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::SELECT
PURPOSE:
This method returns the object reference if the requested point is inside
the image
SYNTAX:
selectedObject = theObject -> Select, x, y
ARGUMENTS:
X: The X location of a point in device or window coordinates.
Y: The Y location of a point in device or window coordinates.
KEYWORDS:
SUCCESS: Set to 1 if a selection is made. To 0 otherwise.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::SELECTPANEL
PURPOSE:
Similar to a Control Panel, it gives context menu access to properties
of selectable objects.
SYNTAX:
selectedObject = theObject -> SelectPanel, x, y, drawID
ARGUMENTS:
X: The X location of a point in device or window coordinates.
Y: The Y location of a point in device or window coordinates.
DRAWID: The identifer of the draw widget object in which the selection is taking place.
KEYWORDS:
None:
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::SETPROPERTY
PURPOSE:
This method is used to set properties of the CatImage object
SYNTAX:
imageObject -> SETPROPERTY, XSIZE=xsize, YSIZE=ysize
ARGUMENTS:
None.
KEYWORDS:
AXES: Set this keyword to add axes to the image display. Or, set this
keyword to an axes object that is added to the image.
AXIS_PROPERTY: Set this keyword to invoke the axes control panel (if there are axes)
in a separate window.
BRING_TO_FRONT: Set this keyword to move this selectable object to the front of all selectable objects.
COLOR_OBJECT: Use this keyword to load a COLORTOOL object for setting up colors
for data display. The image will automatically register for COLORTOOL_TABLECHANGE
messages.
DISPLAY_MODE: Images can be displayed in any of three display "modes". Display Mode 0 is
the default and allows images to be positioned in the window using the
POSITION keyword. Display Mode 1 is the standard "TV" display mode in which
the image is positioned with respect to its lower-left corner in the
display window. Display Mode 2 is the standard "TV" display mode in which
the image is positioned in the window according to the WINDOW_POSITION.
DRAW: Set this keyword to DRAW the image after it's properties have been set.
IMAGE: A image to load into the object.
KEEP_ASPECT: If this keyword is set, the POSITION of the image in the window
is always adjusted to preserve the image aspect ratio (ratio of height
divided by width). Otherwise, the image is resized arbitrarily. Applies
only to DISPLAY_MODE=0.
MOVE_BACKWARD: Set this keyword to move this selectable object to the back of all selectable objects.
MOVE_FORWARD: Set this keyword to move this selectable object to the front of all selectable objects.
NO_COPY: If this keyword is set, the image data is transfered directly to the object
and not copied. The image parameter will become undefined if this keyword is set.
NOINTERPOLATE: If the image is resized to fit the window, this keyword, if set, will
cause nearest neighbor interpolation of image values to be used. The
default is to use bilinear interpolation. Applies only to DISPLAY_MODE=0.
Note: True-Color images *always* use bilinear interpolation no matter what
the value of this keyword.
ORDER: The display order of the image.
POSITION: The position of the image in the display window. The position is given
as a four-element array in normalized (0 to 1) coordinates of the form
[x0, y0, x1, y1], where (x0,y0) is the lower-left corner of the image and
(x1,y1) is the upper-right corner of the image. If the KEEP_ASPECT keyword
is set, the image will be located within the specified POSITION in a way
that preserves the aspect ratio of the image. For the image's exact location
in the window after it has been displayed, use the LOCATION keyword to the
GetProperty method.
SELECTABLE: Set this keyword to make the image selectable.
SEND_TO_BACK: Set this keyword to move this selectable object to the back of all selectable objects.
XSIZE: The desired X size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
XSTART: The X location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
YSIZE: The desired Y size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
YSTART: The Y location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
VISIBLE: Set this keyword to 1 to make the object visible.
WID: The window object where this image is to be displayed.
WINDOW_POSITION: A single number that gives a "window position" for displaying the image.
The same as calling the TV command with a single positional parameter other
than the image.
ZOOMRECT: The coordinates of the zoom rectangle in the image in the form [x1, y1, x2, y2].
The coordinates are in the image pixel coordinate system (e.g., 0 to self._xsize-1).
_EXTRA: Any keyword appropriate for the SETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::SHOW
PURPOSE:
This method attempts to pull the draw widget containing the image forward on
the display, if possible.
SYNTAX:
imageObject -> SHOW
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::ZOOMIN
PURPOSE:
This method allows the user to zoom into the image.
SYNTAX:
imageObject -> ZoomIn, x, y
ARGUMENTS:
x_img: The X focal point for zooming. If not provided, the center of the image.
The value will be a pixel value in the native image coordinate system.
That is to say, a value between 0 and the image X size. The value can
be obtained from an event structure by passing the event structure to
the method Pixel_To_Value:
imgVal = self -> Pixel_To_Value(event.x, event.y, XPixel=x_img, YPixel=y_img)
self -> ZoomIn, x_img, y_img
y_img: The Y focal point for zooming. If not provided, the center of the image.
The value will be a pixel value in the native image coordinate system.
That is to say, a value between 0 and the image Y size.
KEYWORDS:
NODRAW: Normally the image is drawn as soon as it is resized. Setting this
keyword prevents the redraw.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImage::ZOOMOUT
PURPOSE:
This method allows the user to zoom out of the image.
SYNTAX:
imageObject -> ZoomOut, x, y
ARGUMENTS:
None.
KEYWORDS:
ALLTHEWAY: If this keyword is set, the image is zoomed all the way back to its starting value.
NODRAW: Normally the image is drawn as soon as it is resized. Setting this
keyword prevents the redraw.
(See C:\IDL\Catalyst\source\data\catimage__define.pro)
NAME:
CatImageData
PURPOSE:
This object implements a class for handling image data. It is a subclassed
CATDATAATOM object and can be subclassed for specific image implementations.
This object was an early attempt at creating an image object for the Catalyst
Library, and has been depreciated it favor of CatImage. It is left in the Library
for historical reasons and because there are Catalyst applications that use it.
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
SUPERCLASSES:
CATDATAATOM
CATATOM
CATCONTAINER
IDL_CONTAINER
SYNTAX:
imageObject = OBJ_NEW ('CatImageData', image)
MESSAGES:
If a new image is loaded with the LOADIMAGE method, a CATIMAGE_NEWIMAGE message is sent to registered users.
CLASS DEFINITION:
class = { CatImageData, $ ; The CatImageData object class.
_backgroundColor: "", $ ; The name of a background color to use when ERASING.
_bytsclmin : 0.0D, $ ; The MIN value when byte scaling the data for display.
_bytsclmax : 0.0D, $ ; The MAX value when byte scaling the data for display.
_directory : "", $ ; The directory to look in for reading image files.
_erase : 0L, $ ; Flag: Erase the window before displaying image.
_filename : "", $ ; The name of the image file that has been read.
_interpolate: 0L, $ ; Flag: Interpolate when resizing. Nearest neighbor is default.
_keep_aspect: 0L, $ ; Flag: Keep the aspect ratio when calculating image position.
_location : FltArr(6,2), $ ; Location information about the "displayed" image.
_original : Ptr_New(), $ ; The original image data
_noresize : 0L, $ ; Flag: No display resizing.
_position : FltArr(4), $ ; The position of the image in the output window.
_wid : 0L, $ ; The window this image should be drawn in.
_xsize : 0L, $ ; The X size of the image.
_ysize : 0L, $ ; The Y size of the image.
INHERITS CatDataAtom $ ; Subclassed from CATDATAATOM.
}
MODIFICATION_HISTORY:
Written by: David Fanning, 27 March 2003.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::CLEANUP
PURPOSE:
This is the CatImageData object class destructor method.
SYNTAX:
Called automatically when the object is destroyed thus:
OBJ_DESTROY, imageObject
ARGUMENTS:
None.
KEYWORDS:
_EXTRA: Any keyword appropriate for the DATAATOM::CLEANUP method.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::DRAW
PURPOSE:
This method draws the image to the current window at the size
specified by the xsize and ysize properties. These default to
the image size. If either/both are zero nothing is drawn.
SYNTAX:
imageObject -> Draw
ARGUMENTS:
None.
KEYWORDS:
NOCOLORS: Set this keyword if you just want to draw the image
without first loading the image color tables. This is
useful if you want to see the image with a temporary
color table.
NOCOORDS: Set this keyword to display the image without first
drawing the COORDINATE object.
_EXTRA: Any keyword appropriate for the DRAW method of the superclass objects.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::GetData
PURPOSE:
This function method enables data to be retreived from this object. It is written
for internal use and should not be called without due consideration. All data
handling should be done inside the object.
SYNTAX:
data = imageObject -> GetData (Success=s)
ARGUMENTS:
None.
KEYWORDS:
ORIGINAL: Set this keyword to obtain the original image data, rather than the display data.
SUCCESS: This flag shows whether the get has been successful or not.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::GETPROPERTY
PURPOSE:
This method is used to get properties of the CatImageData object
SYNTAX:
imageObject -> GETPROPERTY, XSIZE=xsize, YSIZE=ysize
ARGUMENTS:
None.
KEYWORDS:
ASPECT_RATIO: The ratio of ysize/xsize for the image.
AXES: The image axes object for this image. If not available, a null object.
BYTSCLMAX: The maximum value (MAX keyword) for byte scaling the image for display.
BYTSCLMIN: The minimum value (MIN keyword) for byte scaling the image for display.
BACKGROUNDCOLOR: The name of the background color.
ERASE: Erase flag.
FILENAME: The name of the image file.
DIMENSIONS: A two- or three-element array representing the dimensions of the image.
DIRECTORY: The starting location to search for images when reading image
files. This directory is updated to reflect the last directory
used when reading an image file.
DISPLAY_IMAGE: A copy of the display image.
DISPLAY_RANGE: The minimum and maximum value of the display image as a two-element array.
IMAGE: A copy of the original image.
INTERPOLATE: Interpolate flag.
KEEP_ASPECT: Keep aspect ratio flag.
LOCATION: A 6-by-2 floating array containing information about the position of the
"displayed" image, which is updated after every image DRAW. The first two
elements (location[0:1,0] contain the X and Y positions of the
lower-left corner of the image (device units), the next two elements
(location[2:3,0]) the X and Y positions of the upper-right corner of the
image (device units)), and the last two elements contain the X and Y size of
the display window (device units). The location[*,1] elements are
exactly the same as the location[*,0] elements, except they are
expressed in normalized (0 to 1) coordinates.
NORESIZE: No resize flag.
POSITION: A four-element vector giving the position of the image in the
display window in normalized coordinates: [x0, y0, x1, y1].
RANGE: The minimum and maximum value of the original image as a two-element array.
TOOLDATA: A copy of the image that is to be processed. (The same as DISPLAY_IMAGE.
This keyword MUST be defined to work with TOOLATOM objects.)
TRUEINDEX: The position of the "true color" index. It is -1 for 2D images. Add one
to get the "pixel interleaving" value for this image.
WID: The window object where this image will be displayed.
XINDEX: The index of the X dimension of the image in the DIMENSIONS variable.
XSIZE: The X size of the image.
YINDEX: The index of the Y dimension of the image in the DIMENSIONS variable.
YSIZE: The Y size of the image.
UNDOLIMIT: The number of images kept in the undo buffer.
_REF_EXTRA: Any keyword appropriate for the DATAATOM::GETPROPERTY method.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::INIT
PURPOSE:
This method is used upon object creation.
SYNTAX:
Called automatically when the object is created thus:
imageObject = OBJ_NEW ('CatImageData', image)
ARGUMENTS:
image The image array of any data type.
KEYWORDS:
AXES: Set this keyword to add axes to the image display. Or, set this
keyword to an axis object.
BACKGROUNDCOLOR: The name of the background color. Used only if the ERASE
keyword is set. Set to "IVORY" by default.
BYTSCLMAX: The maximum value for bytscaling the image. If undefined, Max(image).
BYTSCLMIN: The minimum value for bytscaling the image. If undefined, Min(image).
COLOR_OBJECT: Use this keyword to load a COLORTOOL object for setting up colors
for data display. The image will automatically register for COLORTOOL_TABLECHANGE
messages.
COLORTABLE: The index number of a standard color table to use for this image.
The image is displayed with a gray-scale color table by default.
DIRECTORY: The starting location to search for images when reading image
files. This directory is updated to reflect the last directory
used when reading an image file.
ERASE: Set this keyword if you wish to erase the display before
the image is drawn.
FILENAME: The name of the image file. This keyword is only used if an IMAGE
is passed in simultaneously or if the LOAD_IMAGE keyword is used.
INTERPOLATE: If the image is resized to fit the window, this keyword will
cause bilinear interpolation of image values to be used. The
default is to use nearest neighbor interpolation.
KEEP_ASPECT: If this keyword is set, the POSITION of the image in the window
is always adjusted to preserve the image aspect ratio (ratio of height
divided by width). Otherwise, the image is resized arbitrarily.
LOAD_IMAGE: If this keyword is set, and no image data is passed into the INIT method,
then the ReadImageFile method is called to obtain an image data set.
NO_COPY: If this keyword is set, the image data is transfered directly to the object
and not copied. The image parameter will become undefined if this keyword is set.
NORESIZE: Set this keyword to ensure the image is always drawn at
its original size, rather than that specified by XSIZE
and YSIZE.
POSITION: The position of the image in the display window. The position is given
as a four-element array in normalized (0 to 1) coordinates of the form
[x0, y0, x1, y1], where (x0,y0) is the lower-left corner of the image and
(x1,y1) is the upper-right corner of the image. If the KEEP_ASPECT keyword
is set, the image will be located within the specified POSITION in a way
that preserves the aspect ratio of the image. For the image's exact location
in the window after it has been displayed, use the LOCATION keyword to the
GetProperty method.
XSIZE: The X size of the image.
YSIZE: The Y size of the image.
WID: The window object where this image is to be displayed.
_EXTRA: Any keyword appropriate for the INIT method of the superclass object or for
the LoadImage method.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::IP
PURPOSE:
This method creates an image processing tool (CATIPTOOL) to perform an image
processing function, and executes the tool process.
SYNTAX:
processedImage = imageObject -> IP(theProcessName)
ARGUMENTS:
theProcessName: The name of an image processing command. For example, "SMOOTH".
p1: This is the first additional parameter of the image processing command.
The *first* parameter of the image processing command is always the
image data obtained from the targetObject with the GETDATA method. For
example, in this case P1 will be equal to 7:
smoothObj = Obj_New('CATIPTOOL', 'Smooth', 7)
And the command that will be executed is this:
targetObject -> SetData, Smooth(targetObject->GetData(), 7)
p2: This is the second additional parameter of the image processing command.
p3: This is the third additional parameter of the image processing command.
KEYWORDS:
DESTROY: Normally, the image processing object created in this method is added
to the tool list of the image. If the DESTROY keyword is set, however,
the new object is destroyed and not added to the image tool list. This
is appropriate for image processing tasks that can't be undone, for
example.
DRAW: Set this keyword to DRAW the image after the processing has been applied.
ORIGINAL: Set this keyword to apply the image processing operation to the original
image data and not to the display image data.
_EXTRA: Any keyword appropriate for the INIT method of the image processing tool.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::LOADCT
PURPOSE:
This method loads a pre-determined color table for the image. The parameters
and keywords are passed along to the image's built-in color table.
SYNTAX:
imageObject -> LoadCT, colorIndex
ARGUMENTS:
colorIndex: The color table index number to load. If missing, 0 is assumed.
KEYWORDS:
DRAW: If this keyword is set, the DRAW method is called after the colors
have been loaded.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::LOADIMAGE
PURPOSE:
This method is used to load images into the object.
SYNTAX:
imageObject -> LOADIMAGE
ARGUMENTS:
None.
INPUT KEYWORDS:
BMP: Set this keyword to select BMP files.
COLORTABLE: The index number of a standard color table to use for this image.
The image is displayed with a gray-scale color table by default.
DICOM: Set this keyword to select DICOM files.
DIRECTORY: The initial input directory name. The current directory by default.
DEMO: Set this keyword to load demonstration files via LOADDATA rather than SELECTIMAGE.
Setting this keyword will disable all other keywords.
DRAW: Set this keyword to immediately draw the image after loading.
FILENAME: The initial filename. If the initial directory has image files of the
correct type, the default is to display the first of these files. Otherwise, blank.
FLIPIMAGE: Set this keyword if you wish to flip the image from its current orientation.
Setting this keyword reverses the Y dimension of the image.
_EXTRA: This keyword is used to collect and pass keywords on to the FSC_FILESELECT
object. See the code for FSC_FILESELECT for details.
GIF: Set this keyword to select GIF files. This capability is not available in IDL 5.4 and higher.
GROUP_LEADER: Set this keyword to a widget identifier group leader. This keyword MUST be
set when calling this program from another widget program to guarantee modal operation.
JPEG: Set this keyword to select JPEG files.
ONLY2D: Set this keyword if you only want to allow 2D image arrays to be loaded.
ONLY3D: Set this keyword if you only want to allow 3D or true-color image arrays to be loaded.
PICT: Set this keyword to select PICT files.
PNG: Set this keyword to select PNG files.
PREVIEWSIZE: Set this keyword to the maximum size (in pixels) of the preview window. Default is 150.
TIFF: Set this keyword to select TIFF files. (This is the default filter selection.)
OUTPUT KEYWORDS:
CANCEL: This keyword is set to 1 if the user exits the program in any way except
hitting the ACCEPT button. The ACCEPT button will set this keyword to 0.
FILEINFO: This keyword returns information about the selected file. Obtained from the QUERY_**** functions.
OUTDIRECTORY: The directory where the selected file is found.
OUTFILENAME: The short filename of the selected file.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::MESSAGEHANDLER
PURPOSE:
This method responds to "messages" sent from other objects. It is called
automatically by other objects. To receive messages, it is necessary to
"register" with the messaging object.
SYNTAX:
None. Called by other objects.
ARGUMENTS:
TITLE: The message title. This is the "name" of the message indicated when
the object registered for messages with the messaging object.
KEYWORDS:
DATA: Information from the SENDER that may be relevant in processing the message.
Typically, an anonymous structure variable, although it could be anything at all.
SENDER: An output keyword. This is the object reference of the object that is sending
the message.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::SetData
PURPOSE:
This function method enables data to be set from this object. It is written
for internal use and should not be called without due consideration. All data
handling should be done inside the object.
SYNTAX:
imageObject -> SetData (Success=s, image)
ARGUMENTS:
image: The image data to be placed into the object.
KEYWORDS:
DRAW: Set this keyword makes the object DRAW itself once the data is loaded.
NO_COPY: Set this keyword to "move" supplied data into the object rather than
make a copy. Note that this will leave the input "data" variable
undefined.
ORIGINAL: Set this keyword to replace the original image data, rather than the display data.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::SETORIGINAL
PURPOSE:
This method attempts simply replaces the display image with the original image.
As a side effect, any processing objects on the UNDO list are automatically deleted.
SYNTAX:
imageObject -> SetOriginal
ARGUMENTS:
None.
KEYWORDS:
DRAW: Set this keyword to draw the image after replacement.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::SETPROPERTY
PURPOSE:
This method is used to set properties of the CatImageData object
SYNTAX:
imageObject -> SETPROPERTY, XSIZE=xsize, YSIZE=ysize
ARGUMENTS:
None.
KEYWORDS:
AXES: Set this keyword to add axes to the image display. Or, set this
keyword to an axes object that is added to the image.
AX_PROPERTY: Set this keyword to invoke the axes control panel (if there are axes)
in a separate window.
BYTSCLMAX: The maximum value (MAX keyword) for byte scaling the image for display.
BYTSCLMIN: The minimum value (MIN keyword) for byte scaling the image for display.
BACKGROUNDCOLOR: The name of the background color. Used only if the ERASE
keyword is set.
COLOR_OBJECT: Use this keyword to load a COLORTOOL object for setting up colors
for data display. The image will automatically register for COLORTOOL_TABLECHANGE
messages.
COLORTABLE: The index number of a standard color table to use for this image.
The image is displayed with a gray-scale color table by default.
DIRECTORY: The starting location to search for images when reading image
files. This directory is updated to reflect the last directory
used when reading an image file.
DRAW: Set this keyword to DRAW the image after it's properties have been set.
ERASE: Set this keyword if you wish to erase the display before
the image is drawn.
FILENAME: The name of the image file. This keyword is only used if an IMAGE
is passed in simultaneously.
IMAGE: A image to load into the object.
INTERPOLATE: If the image is resized to fit the window, this keyword will
cause bilinear interpolation of image values to be used. The
default is to use nearest neighbor interpolation.
KEEP_ASPECT: If this keyword is set, the POSITION of the image in the window
is always adjusted to preserve the image aspect ratio. Otherwise,
the image is resized arbitrarily.
NO_COPY: If this keyword is set, the image data is transfered directly to the object
and not copied. The image parameter will become undefined if this keyword is set.
NORESIZE: Set this keyword to ensure the image is always drawn at its original size,
rather than that specified by XSIZE and YSIZE. IF NORESIZE is set,
the lower-left corner of the image is positioned at (POSITION[0], POSITION[1]).
POSITION: The position of the image in the display window. The position is given
as a four-element array in normalized (0 to 1) coordinates of the form
[x0, y0, x1, y1], where (x0,y0) is the lower-left corner of the image and
(x1,y1) is the upper-right corner of the image. If the KEEP_ASPECT keyword
is set, the image will be located within the specified POSITION in a way
that preserves the aspect ratio of the image. For the image's exact location
in the window after it has been displayed, use the LOCATION keyword to the
GetProperty method.
WID: The window objectr where this image is to be displayed.
UNDOLIMIT: The number of tool objects kept in the image's undo buffer.
_EXTRA: Any keyword appropriate for the SETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::SHOW
PURPOSE:
This method attempts to pull the draw widget containing the image forward on
the display, if possible.
SYNTAX:
imageObject -> SHOW
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::WINDOW
PURPOSE:
This method with create a CATGRAPHICSWINDOW for the image and add itself
to the window. The image will be destroyed when the graphics window
is destroyed.
This method is provided mostly for interactive development of the image
object.
Note that other image properties are also set when the GRAPHICSWINDOW is created.
SYNTAX:
imageObject -> Window
ARGUMENTS:
None.
KEYWORDS:
_EXTRA: Any keyword appropriate for the image SETPROPERY method.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CatImageData::XCOLORS
PURPOSE:
This method changes color tables for the image. It is only
available for 2D image arrays.
SYNTAX:
imageObject -> XColors
ARGUMENTS:
None.
KEYWORDS:
_EXTRA: Any keyword appropriate for the COLORTOOL::XCOLORS method.
(See C:\IDL\Catalyst\source\data\catimagedata__define.pro)
NAME:
CATTRUECOLORIMAGE
PURPOSE:
This object implements a class for handling true-color image data. It is a subclassed
CatImageData object and can be subclassed for specific image implementations.
This object was an early attempt at creating an image object for the Catalyst
Library, and has been depreciated it favor of CatImage. It is left in the Library
for historical reasons and because there are Catalyst applications that use it.
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
SUPERCLASSES:
CATIMAGEDATA
CATDATAATOM
ATOM
CATCONTAINER IDL_CONTAINER
SYNTAX:
imageObject = OBJ_NEW ('CATTRUECOLORIMAGE', image)
CLASS DEFINITION:
class = { CATTRUECOLORIMAGE, $ ; The CATTRUECOLORIMAGE object class.
INHERITS CatImageData $ ; Inherits the CatImageData class.
}
MODIFICATION_HISTORY:
Written by: David Fanning, 19 April 2003.
(See C:\IDL\Catalyst\source\data\cattruecolorimage__define.pro)
NAME:
CATTRUECOLORIMAGE::CONTROLPANEL
PURPOSE:
This method creates a control panel for the object
SYNTAX:
imageObject -> ControlPanel, baseObj
ARGUMENTS:
baseObject: The object reference of a base widget for this control to
be added to. If not supplied, the control panel will be a
self contained window.
KEYWORDS:
_EXTRA: Any keywords appropriate for the "CONTROLPANEL::INIT" method.
(See C:\IDL\Catalyst\source\data\cattruecolorimage__define.pro)
NAME:
CATTRUECOLORIMAGE::EVENTHANDLER
PURPOSE:
This method is an event handler for the Control Panel.
SYNTAX:
Called automatically by the event handling system
ARGUMENTS:
event: The event structure.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\cattruecolorimage__define.pro)
NAME:
CATTRUECOLORIMAGE::INIT
PURPOSE:
This method is used upon object creation.
SYNTAX:
Called automatically when the object is created thus:
imageObject = OBJ_NEW ('CatTrueColorImage', image)
ARGUMENTS:
image The 24-bit image array of byte type.
KEYWORDS:
_EXTRA: Any keyword appropriate for the INIT method of the superclass object or for
the LoadImage method.
(See C:\IDL\Catalyst\source\data\cattruecolorimage__define.pro)
NAME:
CATTRUECOLORIMAGE::LOADIMAGE
PURPOSE:
This method is used to load images into the object.
SYNTAX:
imageObject -> LOADIMAGE
ARGUMENTS:
None.
INPUT KEYWORDS:
_EXTRA: Any keyword appropriate for the CatImageData::LOADIMAGE method.
OUTPUT KEYWORDS:
CANCEL: This keyword is set to 1 if the user exits the program in any way except
hitting the ACCEPT button. The ACCEPT button will set this keyword to 0.
FILEINFO: This keyword returns information about the selected file. Obtained from the QUERY_**** functions.
OUTDIRECTORY: The directory where the selected file is found.
OUTFILENAME: The short filename of the selected file.
(See C:\IDL\Catalyst\source\data\cattruecolorimage__define.pro)
NAME:
CATTRUECOLORIMAGE::PIXEL_TO_VALUE
PURPOSE:
This method calculates the image RGB value underneath a pixel location
in the display window. To be accurate, the window containing the image MUST
be the current graphics window.
SYNTAX:
image_value = imageObject -> Pixel_to_Value(x, y)
RETURN_VALUE:
image_value: The image value at image[x,y]
ARGUMENTS:
X: The x location in the display window (pixel coordinates).
Y: The y location in the display window (pixel coordinates).
INPUT_KEYWORDS:
OUTSIDE: The value to represent "outside" the image. Default is !Values.F_NAN.
OUTPUT_KEYWORDS:
INSIDE: Returns a 1 if the (x,y) values are inside the image and 0 othewise.
WINDOWINDEX: The window index number of the window containing the image object. Set
to !D.Window by default.
XDATA: The x data value with respect to the image data coordinate system,
XPIXEL: The x pixel value in terms of image (rather than window) device coordinates.
YDATA: The y data value with respect to the image data coordinate system,
YPIXEL: The y pixel value in terms of image (rather than window) device coordinates.
(See C:\IDL\Catalyst\source\data\cattruecolorimage__define.pro)
NAME:
CATTRUECOLORIMAGE::SETPROPERTY
PURPOSE:
This method is used to set properties of the CATTRUECOLORIMAGE object
SYNTAX:
imageObject -> SETPROPERTY, Image=newImage
ARGUMENTS:
None.
KEYWORDS:
IMAGE: A true-color (24-bit) image array to load into the object.
_EXTRA: Any keyword appropriate for the SETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\cattruecolorimage__define.pro)
NAME:
IMAGECONTAINER::ADD
PURPOSE:
This method is where you can screen what kinds of objects are
added to this object's hierarchy. The method is not always needed.
If you do create it, be CERTAIN to call the superclass ADD method
or your program will not work correctly.
SYNTAX:
theObject -> Add, object
ARGUMENTS:
object: The object to be added to this one.
KEYWORDS:
_EXTRA: Any keywords appropriate for the superclass Add method.
(See C:\IDL\Catalyst\source\data\imagecontainer__define.pro)
NAME:
IMAGECONTAINER::DRAW
PURPOSE:
This method may or may not be needed by your object, depending
upon whether a graphical representation of the object is required.
If you wish the DRAW method to automatically propogates down to any
objects contained in this object's container, call the superclass DRAW
method.
SYNTAX:
theObject -> Draw
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imagecontainer__define.pro)
NAME:
IMAGECONTAINER::GETFRAME
PURPOSE:
This method retrieves an image from its container, based on the image framenumber
SYNTAX:
thisObject -> GetFrame, frameNumber
ARGUMENTS:
framenumber: The image framenumber. If an image with this framenumber can be found, it
is removed from the image container.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imagecontainer__define.pro)
NAME:
IMAGECONTAINER::REMOVEFRAME
PURPOSE:
This method removes an image from its container, based on the image framenumber
SYNTAX:
thisObject -> RemoveFrame, frameNumber
ARGUMENTS:
framenumber: The image framenumber. If an image with this framenumber can be found, it
is removed from the image container.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imagecontainer__define.pro)
NAME:
IMAGECONTAINER__DEFINE
PURPOSE:
The purpose of this routine is to provide a container class for image
objects. Calling the DRAW method of a container calls the DRAW method
on all the items in the container. It is similar to a CatLayer object,
which was developed later for annotations. It was developed specifically
for ImageFrame objects, and still contains some unneeded dependencies
on that object.
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
CATEGORY:
Objects.
SYNTAX:
theObject = Obj_New("IMAGECONTAINER")
SUPERCLASSES:
CATATOM
CATCONTAINER IDLITCOMPONENT
IDL_CONTAINER
CLASS_STRUCTURE:
class = { IMAGECONTAINER, $
INHERITS CATATOM $
}
MESSAGES:
None.
MODIFICATION_HISTORY:
Written by: David W. Fanning, May 24, 2005.
(See C:\IDL\Catalyst\source\data\imagecontainer__define.pro)
NAME:
ImageFrame
PURPOSE:
This object implements a class for handling image data. This object is
conceptually identical to a CatImage object, except that the image data
is not stored directly in the object. Rather, a pointer to an ImageStack
object, a frame number, and a slice orientation are used to access the
image data when needed for display. This object was used in a medical
imaging application in support of volumentric image data.
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
SUPERCLASSES:
CATDATAATOM
CATATOM
CATCONTAINER
IDL_CONTAINER
SYNTAX:
imageObject = OBJ_NEW ('ImageFrame', imageStack)
CLASS DEFINITION:
class = { ImageFrame, $ ; The ImageFrame object class.
_stack : Obj_New(), $ ; The IMAGESTACK object.
_display_mode : 0B, $ ; A flag indicating which display method to use for drawing.
_inverse : 0B, $ ; If this flag is set, the image is drawn in inverse color.
_keep_aspect : 0L, $ ; Flag: Keep the aspect ratio when calculating image position.
_location : DblArr(6,2), $ ; Location information about the "displayed" image.
_interpolate : 0L, $ ; Flag: When set, bilinear interpolation is used.
_order : 0L, $ ; Image display order.
_out_xsize : 0L, $ ; The output X size of the image. (Display_Mode=1 and Display_Mode=2)
_out_ysize : 0L, $ ; The output Y size of the image. (Display_Mode=1 and Display_Mode=2)
_position : DblArr(4), $ ; The position of the image in the output window. (Display_Mode=0)
_xsize : 0L, $ ; The X size of the image.
_xstart : 0L, $ ; The starting X location for displaying image. (Display_Mode=1)
_ysize : 0L, $ ; The Y size of the image.
_ystart : 0L, $ ; The starting Y location for displaying image. (Display_Mode=1)
_wid : Obj_New(), $ ; The window object where this image should be displayed.
_window_position: 0L, $ ; The window position for displaying this image. (Display_Mode=2)
_orientation : "", $ ; The orientation of the slice: "X", "Y", or "Z" (the default).
_framenumber : 0L, $ ; The frame number.
_thick : 0L, $ ; The "thickness" of the image slice. (See IMAGESTACK documentation.)
INHERITS CatDataAtom $ ; Subclassed from CATDATAATOM.
}
MODIFICATION_HISTORY:
Written by: David Fanning, 27 March 2003.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::CLEANUP
PURPOSE:
This is the ImageFrame object class destructor method.
SYNTAX:
Called automatically when the object is destroyed thus:
OBJ_DESTROY, imageObject
ARGUMENTS:
None.
KEYWORDS:
_EXTRA: Any keyword appropriate for the DATAATOM::CLEANUP method.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::DRAW
PURPOSE:
This method draws the image to the display based on the current DISPLAY_MODE
in effect for the widget.
SYNTAX:
imageObject -> Draw
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::DRAW_MODE_0
PURPOSE:
This display mode position's the image in the display window based
on the POSITION of the image.
SYNTAX:
imageObject -> Draw_Mode_0
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::DRAW_MODE_1
PURPOSE:
This display mode position's the image in the display window based
on the lower-left corner of the image.
SYNTAX:
imageObject -> Draw_Mode_1
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::DRAW_MODE_2
PURPOSE:
This display mode position's the image in the display window based
on a window position parameter.
SYNTAX:
imageObject -> Draw_Mode_2
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::GETPROPERTY
PURPOSE:
This method is used to get properties of the ImageFrame object
SYNTAX:
imageObject -> GETPROPERTY, XSIZE=xsize, YSIZE=ysize
ARGUMENTS:
None.
KEYWORDS:
AXES: The image axes object for this image. If not available, a null object.
DIMENSIONS: A three-element array containing the dimensions of the imageStack object.
IMAGE: The image data.
INVERSE: If this keyword is set, the image is drawn in inverse color (255-image).
KEEP_ASPECT: The keep aspect ratio flag.
LOCATION: A 6-by-2 floating array containing information about the position of the
"displayed" image, which is updated after every image DRAW. The first two
elements (location[0:1,0] contain the X and Y positions of the
lower-left corner of the image (device units), the next two elements
(location[2:3,0]) the X and Y positions of the upper-right corner of the
image (device units)), and the last two elements contain the X and Y size of
the display window (device units). The location[*,1] elements are
exactly the same as the location[*,0] elements, except they are
expressed in normalized (0 to 1) coordinates.
NOINTERPOLATE: The nointerpolate flag.
OUT_XSIZE: The X size of the image on the display.
OUT_YSIZE: The Y size of the image on the display.
ORIENTATION: The current orientation of the slice.
POSITION: A four-element vector giving the position of the image in the
display window in normalized coordinates: [x0, y0, x1, y1].
FRAMENUMBER: The current index number of the slice.
THICK: The current slice "thickness".
XSIZE: The X size of the image.
XSTART: The X location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
YSIZE: The Y size of the image.
YSTART: The Y location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
WID: The window object where this image will be displayed.
WINDOW_POSITION: A single number that gives a "window position" for displaying the image.
The same as calling the TV command with a single positional parameter other
than the image.
_REF_EXTRA: Any keyword appropriate for the DATAATOM::GETPROPERTY method.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::INIT
PURPOSE:
This method is used upon object creation.
SYNTAX:
Called automatically when the object is created thus:
imageObject = OBJ_NEW ('ImageFrame', imageStackObject)
ARGUMENTS:
imageStack The object reference to an IMAGESTACK object.
KEYWORDS:
AXES: Set this keyword to add axes to the image display. Or, set this
keyword to an axis object.
DISPLAY_MODE: Images can be displayed in any of three display "modes". Display Mode 0 is
the default and allows images to be positioned in the window using the
POSITION keyword. Display Mode 1 is the standard "TV" display mode in which
the image is positioned with respect to its lower-left corner in the
display window. Display Mode 2 is the standard "TV" display mode in which
the image is positioned in the window according to the WINDOW_POSITION.
INVERSE: If this keyword is set, the image is drawn in inverse color (255-image).
KEEP_ASPECT: If this keyword is set, the POSITION of the image in the window
is always adjusted to preserve the image aspect ratio (ratio of height
divided by width). Otherwise, the image is resized arbitrarily. Applies
only to DISPLAY_MODE=0.
NO_COPY: If this keyword is set, the image data is transfered directly to the object
and not copied. The image parameter will become undefined if this keyword is set.
NOINTERPOLATE: If the image is resized to fit the window, this keyword, if set, will
cause nearest neighbor interpolation of image values to be used. The
default is to use bilinear interpolation. Applies only to DISPLAY_MODE=0.
ORIENTATION: Slices can be taken in the X, Y, and Z directions. This keyword accepts
a single character string that selects the directions. "Z": the slice is taken
from the XY plane (the default). "X" the slice is taken from the YZ plane. "Y" the
slice is taken from the XZ plane.
POSITION: The position of the image in the display window. The position is given
as a four-element array in normalized (0 to 1) coordinates of the form
[x0, y0, x1, y1], where (x0,y0) is the lower-left corner of the image and
(x1,y1) is the upper-right corner of the image. If the KEEP_ASPECT keyword
is set, the image will be located within the specified POSITION in a way
that preserves the aspect ratio of the image. For the image's exact location
in the window after it has been displayed, use the LOCATION keyword to the
GetProperty method.
FRAMENUMBER: The index number of the slice desired from the image cube. By default, 0.
THICK: Normally, a slice one image frame thick is returned. If this keyword is
set to a value greater than 1, then THICK number of image frames are averaged
together to produce the slice that is returned. The slice will go from number
to (number + thick - 1). If there are not enough image frames to produce a slice
with a particular thickness, then as many frames as possible will be averaged.
XSIZE: The desired X size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
XSTART: The X location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
YSIZE: The desired Y size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
YSTART: The Y location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
WID: The window object where this image is to be displayed.
WINDOW_POSITION: A single number that gives a "window position" for displaying the image.
The same as calling the TV command with a single positional parameter other
than the image.
_EXTRA: Any keyword appropriate for the INIT method of the superclass object.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::MESSAGEHANDLER
PURPOSE:
This method responds to "messages" sent from other objects. It is called
automatically by other objects. To receive messages, it is necessary to
"register" with the messaging object.
SYNTAX:
None. Called by other objects.
ARGUMENTS:
TITLE: The message title. This is the "name" of the message indicated when
the object registered for messages with the messaging object.
KEYWORDS:
DATA: Information from the SENDER that may be relevant in processing the message.
Typically, an anonymous structure variable, although it could be anything at all.
SENDER: An output keyword. This is the object reference of the object that is sending
the message.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::PIXEL_TO_VALUE
PURPOSE:
This method calculates the original image value underneath a pixel location
in the display window. To be accurate, the window that contains the image
MUST BE the current graphics window. To be certain of this, use the WID
keyword in the INIT or SetProperty methods to associate an image with its
display window.
SYNTAX:
image_value = imageObject -> Pixel_to_Value(x, y)
RETURN_VALUE:
image_value: The image value at image[x,y]. For 2D images, a single value. For
true-color images a three-element array representing the RGB values
at that image pixel.
ARGUMENTS:
X: The x location in the display window (pixel coordinates).
Y: The y location in the display window (pixel coordinates).
OUTPUT_KEYWORDS:
INSIDE: Returns a 1 if the (x,y) values are inside the image and 0 otherwise. No values
are returned in other keywords if the point is not inside the image.
XDATA: The x data value with respect to the image data coordinate system,
XPIXEL: The x pixel value in terms of image (rather than window) device coordinates.
YDATA: The y data value with respect to the image data coordinate system,
YPIXEL: The y pixel value in terms of image (rather than window) device coordinates.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::POINT_INSIDE
PURPOSE:
This method returns a 1 if the specified point is inside the image, and a 0
if the specified point is outside the image.
SYNTAX:
is_inside = imageObject -> Point_Inside(x, y)
ARGUMENTS:
x: The X value of the point in window or pixel coordinates.
y: The Y value of the point in window or pixel coordinates.
KEYWORDS:
None
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::SETPROPERTY
PURPOSE:
This method is used to set properties of the ImageFrame object
SYNTAX:
imageObject -> SETPROPERTY, XSIZE=xsize, YSIZE=ysize
ARGUMENTS:
None.
KEYWORDS:
AXES: Set this keyword to add axes to the image display. Or, set this
keyword to an axes object that is added to the image.
AXIS_PROPERTY: Set this keyword to invoke the axes control panel (if there are axes)
in a separate window.
DISPLAY_MODE: Images can be displayed in any of three display "modes". Display Mode 0 is
the default and allows images to be positioned in the window using the
POSITION keyword. Display Mode 1 is the standard "TV" display mode in which
the image is positioned with respect to its lower-left corner in the
display window. Display Mode 2 is the standard "TV" display mode in which
the image is positioned in the window according to the WINDOW_POSITION.
DRAW: Set this keyword to DRAW the image after it's properties have been set.
IMAGESTACK: An object reference to an IMAGESTACK object.
INVERSE: If this keyword is set, the image is drawn in inverse color (255-image).
KEEP_ASPECT: If this keyword is set, the POSITION of the image in the window
is always adjusted to preserve the image aspect ratio (ratio of height
divided by width). Otherwise, the image is resized arbitrarily. Applies
only to DISPLAY_MODE=0.
NO_COPY: If this keyword is set, the image data is transfered directly to the object
and not copied. The image parameter will become undefined if this keyword is set.
NOINTERPOLATE: If the image is resized to fit the window, this keyword, if set, will
cause nearest neighbor interpolation of image values to be used. The
default is to use bilinear interpolation. Applies only to DISPLAY_MODE=0.
Note: True-Color images *always* use bilinear interpolation no matter what
the value of this keyword.
NULL_FOR_SAVE: If this keyword is set, any object field in this object that will cause
unwanted object references to be saved in a save file are nulled out.
ORIENTATION: Slices can be taken in the X, Y, and Z directions. This keyword accepts
a single character string that selects the directions. "Z": the slice is taken
from the XY plane (the default). "X" the slice is taken from the YZ plane. "Y" the
slice is taken from the XZ plane.
POSITION: The position of the image in the display window. The position is given
as a four-element array in normalized (0 to 1) coordinates of the form
[x0, y0, x1, y1], where (x0,y0) is the lower-left corner of the image and
(x1,y1) is the upper-right corner of the image. If the KEEP_ASPECT keyword
is set, the image will be located within the specified POSITION in a way
that preserves the aspect ratio of the image. For the image's exact location
in the window after it has been displayed, use the LOCATION keyword to the
GetProperty method.
FRAMENUMBER: The index number of the slice desired from the image cube. By default, 0.
THICK: Normally, a slice one image frame thick is returned. If this keyword is
set to a value greater than 1, then THICK number of image frames are averaged
together to produce the slice that is returned. The slice will go from number
to (number + thick - 1). If there are not enough image frames to produce a slice
with a particular thickness, then as many frames as possible will be averaged.
XSIZE: The desired X size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
XSTART: The X location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
YSIZE: The desired Y size of the image upon output. This is used only for DISPLAY_MODE=1
and DISPLAY_MODE=2.
YSTART: The Y location (in pixels) of the lower-left corner of the image. Used only
in DISPLAY_MODE=1.
WID: The window objectr where this image is to be displayed.
WINDOW_POSITION: A single number that gives a "window position" for displaying the image.
The same as calling the TV command with a single positional parameter other
than the image.
_EXTRA: Any keyword appropriate for the SETPROPERTY method of the superclass object.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
ImageFrame::SHOW
PURPOSE:
This method attempts to pull the draw widget containing the image forward on
the display, if possible.
SYNTAX:
imageObject -> SHOW
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imageframe__define.pro)
NAME:
IMAGESTACK::CLEANUP
PURPOSE:
This is the IMAGESTACK object class destructor method.
SYNTAX:
Called automatically when the object is destroyed.
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imagestack__define.pro)
NAME:
IMAGESTACK::DRAW
PURPOSE:
This method may or may not be needed by your object, depending
upon whether a graphical representation of the object is required.
If you wish the DRAW method to automatically propogates down to any
objects contained in this object's container, call the superclass DRAW
method.
SYNTAX:
theObject -> Draw
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\imagestack__define.pro)
NAME:
IMAGESTACK::GETFRAME
PURPOSE:
This function method returns the 2D image with the corresponding frame or slice number.
By default, the slice is taken in the XY plane of the image stack, but slices in other
planes can be returned by setting the appropriate keywords.
SYNTAX:
theFrame = theObject -> GetFrame(number)
ARGUMENTS:
number: The frame or slice number of the image desired in the image stack.
KEYWORDS:
ORIENTATION: Slices can be taken in the X, Y, and Z directions. This keyword accepts
a single character string that selects the directions. "Z": the slice is taken
from the XY plane (the default). "X" the slice is taken from the YZ plane. "Y" the
slice is taken from the XZ plane.
THICK: Normally, a slice one image frame thick is returned. If this keyword is
set to a value greater than 1, then THICK number of image frames are averaged
together to produce the slice that is returned. The slice will go from number
to (number + thick - 1). If there are not enough image frames to produce a slice
with a particular thickness, then as many frames as possible will be averaged.
In other words, if there are 10 slices and you ask for slice number 8 with a
thickness of 3, frame indices 8, 9, and 10 should be averaged. In this case,
there is no frame index 10, so only two frames will be used in calculating
the average frame.
(See C:\IDL\Catalyst\source\data\imagestack__define.pro)
NAME:
IMAGESTACK::GETPROPERTY
PURPOSE:
This method allows the user to obtain IMAGESTACK properties. Be sure
you ALWAYS call the superclass GETPROPERTY method if you have extra
keywords!
SYNTAX:
theObject -> GetProperty ...
ARGUMENTS:
None.
KEYWORDS:
DIMENSIONS: A three-element array containing the dimensions of the image stack.
IMAGESTACK: The image stack data.
MAXVALUE: The maximum value of the data in the stack.
MINVALUE: The minimum value of the data in the stack.
XSIZE: The X size of the data stack.
YSIZE: The Y size of the data stack.
ZSIZE: The Z size of the data stack.
_REF_EXTRA: Any keywords appropriate for the superclass GetProperty method.
(See C:\IDL\Catalyst\source\data\imagestack__define.pro)
NAME:
IMAGESTACK::INIT
PURPOSE:
This is the IMAGESTACK object class initialization method
SYNTAX:
Called automatically when the object is created.
ARGUMENTS:
dataStack: The 3D volume data set that is the image stack.
KEYWORDS:
_EXTRA: Any keywords appropriate for the superclass INIT method.
(See C:\IDL\Catalyst\source\data\imagestack__define.pro)
NAME:
IMAGESTACK::SETPROPERTY
PURPOSE:
This method allows the user to set the IMAGESTACK object's properties.
SYNTAX:
theObject -> SetProperty ...
ARGUMENTS:
None.
KEYWORDS:
IMAGESTACK: A 3D data set representing an image stack.
_EXTRA: Any keywords appropriate for the superclass SetProperty method.
(See C:\IDL\Catalyst\source\data\imagestack__define.pro)
NAME:
IMAGESTACK__DEFINE
PURPOSE:
The purpose of this routine is to implement an object for manipulating
an image cube or stack. An image stack is a 3D volume data set that can be
sliced in three orthogonal planes to produce image slices or frames.
AUTHORS:
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
CATEGORY:
Objects.
SYNTAX:
theObject = Obj_New("IMAGESTACK")
SUPERCLASSES:
CATDATAATOM
CATATOM
CATCONTAINER IDLITCOMPONENT
IDL_CONTAINER
CLASS_STRUCTURE:
class = { IMAGESTACK, $
xsize: 0L, $
ysize: 0L, $
zsize: 0L, $
INHERITS CATDATAATOM $
}
MESSAGES:
None.
MODIFICATION_HISTORY:
Written by: David W. Fanning, 25 February 2004.
(See C:\IDL\Catalyst\source\data\imagestack__define.pro)
NAME:
SCALEIMAGE::CLEANUP
PURPOSE:
This is the SCALEIMAGE object class destructor method.
SYNTAX:
Called automatically when the object is destroyed.
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
ScaleImage::CONTROLPANEL
PURPOSE:
This method creates a control panel for the CATIMAGE object. A
control panel is a graphical user interface for setting object
properties. If you create a control panel, the events are typically
sent to the EVENTHANDLER method.
SYNTAX:
theObject -> ControlPanel, baseObject
ARGUMENTS:
baseObject: The object reference of a base widget for this control to
be added to. If not supplied, the control panel will be in a
self contained window (i.e., a TOPLEVELBASE object).
KEYWORDS:
_EXTRA: Any keywords appropriate for the CatControlPanel::INIT method.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
ScaleImage::CREATEDISPLAYIMAGE
PURPOSE:
This method creates a display image for the object
SYNTAX:
imageObject -> CreateDisplayImage
ARGUMENTS:
None.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
ScaleImage::EVENT_HANDLER
PURPOSE:
This method is the event handler for the CATIMAGE object. It will typically
be used to respond to events from widget objects created in the CONTROLPANEL
method.
SYNTAX:
This method is called automatically by the event handling mechanism.
ARGUMENTS:
event: The event structure as described in the IDL help files, except
that the ID, TOP and HANDLER tags will be object references.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
SCALEIMAGE::GETPROPERTY
PURPOSE:
This method allows the user to obtain SCALEIMAGE properties. Be sure
you ALWAYS call the CATIMAGE GETPROPERTY method if you have extra
keywords!
SYNTAX:
theObject -> GetProperty ...
ARGUMENTS:
None.
KEYWORDS:
BETA: The beta factor in a Hyperpolic Sine stretch.
BOTTOM: The lowest value of the image.
EXPONENT: The logarithm exponent in a logarithmic stretch.
GAMMA: The gamma factor in a gamma stretch.
MEAN: The mean factor in a logarithmic stretch. Default is 0.5.
MISSING_COLOR: The name of the missing color.
MISSING_VALUE: The number that represents missing value in the image.
NCOLORS: The number of colors the image is scaled into.
NEGATIVE: If set, the display is doing a negative or reverse stretch.
SCALETYPE: The type of scaling performed prior to display. Default is 0, linear scaling.
Number Type of Stretch
0 Linear scaled = BytScl(image, MIN=minThresh, MAX=maxThresh)
1 Gamma scaled = GmaScl(image, MIN=minThresh, MAX=maxThresh, Gamma=gamma)
2 Log scaled = LogScl(image, MIN=minThresh, MAX=maxThresh, Mean=mean, Exponent=exponent)
3 Asinh scaled = AsinhScl(image, MIN=minThresh, MAX=maxThresh, Beta=beta)
4 Linear 2% A linear stretch, with 2 percent of pixels clipped at both the top and bottom
5 Square Root A linear stretch of the square root histogram of the image values.
6 Equalization A linear stretch of the histogram equalized image histogram.
7 Gaussian A Gaussian normal function is applied to the image histogram.
SCLMIN: The image data is scaled between SCLMIN and SCLMAX before display. Default = 0.
SCLMAX: The image data is scaled between SCLMIN and SCLMAX before display. Default = 255.
SIGMA: The current value of the SIGMA scale factor in Gaussian stretches.
_REF_EXTRA: Any keywords appropriate for the CATIMAGE GetProperty method.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
SCALEIMAGE::INIT
PURPOSE:
This is the SCALEIMAGE object class initialization method
SYNTAX:
Called automatically when the object is created.
ARGUMENTS:
image The image to load into the object.
KEYWORDS:
BOTTOM: The lowest value of the image.
BETA: The beta factor in a Hyperpolic Sine stretch. Default is 3.0.
EXPONENT: The logarithm exponent in a logarithmic stretch. Default is 4.0.
GAMMA: The gamma factor in a gamma stretch. Default is 1.5.
MEAN: The mean factor in a logarithmic stretch. Default is 0.5.
MISSING_COLOR: The name of the missing color. By default, "ivory".
MISSING_VALUE: The number that represents missing value in the image.
NCOLORS: The number of colors to scale the data into, as in this: (Default: 256)
NEGATIVE: Set this keyword if you want to display the image with a negative or reverse stretch.
SCALETYPE: The type of scaling performed prior to display. Default is 0, linear scaling.
May be specified as a number or as a string (e.g, 3 or "ASIGH").
Number Type of Stretch
0 Linear scaled = BytScl(image, MIN=minThresh, MAX=maxThresh)
1 Gamma scaled = GmaScl(image, MIN=minThresh, MAX=maxThresh, Gamma=gamma)
2 Log scaled = LogScl(image, MIN=minThresh, MAX=maxThresh, Mean=mean, Exponent=exponent)
3 Asinh scaled = AsinhScl(image, MIN=minThresh, MAX=maxThresh, Beta=beta)
4 Linear 2% A linear stretch, with 2 percent of pixels clipped at both the top and bottom
5 Square Root A linear stretch of the square root histogram of the image values.
6 Equalization A linear stretch of the histogram equalized image histogram.
7 Gaussian A Gaussian normal function is applied to the image histogram.
8 None No scaling whatsoever is done.
SCLMIN: The image data is scaled between SCLMIN and SCLMAX before display. Default is MIN(image).
SCLMAX: The image data is scaled between SCLMIN and SCLMAX before display. Default is MAX(image).
SIGMA: The sigma scale factor in a Gaussian stretch. Default is 1.0.
_EXTRA: Any keywords appropriate for the CATIMAGE INIT method.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
SCALEIMAGE::SCALEtheIMAGE
PURPOSE:
This method does the actual scaling of the image data.
SYNTAX:
scaledImage = theObject -> ScaleTheImage()
RETURN_VALUE:
scaledImage: The scaled image.
ARGUMENTS:
image: The image to be scaled. Must be a 2D image. A 24-bit image (a 3D image,
in which one of the dimensions is a 3) is immediately returned.
KEYWORDS:
None.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
SCALEIMAGE::SETPROPERTY
PURPOSE:
This method allows the user to set the SCALEIMAGE object's properties. Be sure
you ALWAYS call the CATIMAGE SETPROPERTY method if you have extra keywords!
SYNTAX:
theObject -> SetProperty ...
ARGUMENTS:
None.
KEYWORDS:
BETA: The beta factor in a Hyperpolic Sine stretch. Default is 3.0.
BOTTOM: The lowest value of the scaled image.
EXPONENT: The logarithm exponent in a logarithmic stretch. Default is 4.0.
GAMMA: The gamma factor in a gamma stretch. Default is 1.5.
MEAN: The mean factor in a logarithmic stretch. Default is 0.5.
NEGATIVE: Set this keyword to get a negative scaling (reverse).
IMAGE: The image data. If SCLMIN and SCLMAX are not used in conjunction with this
keyword, the image is scaled with a 2% linear scaling.
MISSING_COLOR: The name of the missing color.
MISSING_VALUE: The number that represents missing value in the image.
NCOLORS: The number of colors to scale the data into, as in this: (Default: 256)
displayImage = BYTSCL(image, MIN=self.sclmin, MAX=self.sclmax, TOP=self.ncolors-1)
SCALETYPE: The type of scaling performed prior to display. Default is 0, linear scaling.
Number Type of Stretch
0 Linear scaled = BytScl(image, MIN=minThresh, MAX=maxThresh)
1 Gamma scaled = GmaScl(image, MIN=minThresh, MAX=maxThresh, Gamma=gamma)
2 Log scaled = LogScl(image, MIN=minThresh, MAX=maxThresh, Mean=mean, Exponent=exponent)
3 Asinh scaled = AsinhScl(image, MIN=minThresh, MAX=maxThresh, Beta=beta)
4 Linear 2% A linear stretch, with 2 percent of pixels clipped at both the top and bottom
5 Square Root A linear stretch of the square root histogram of the image values.
6 Equalization A linear stretch of the histogram equalized image histogram.
7 Gaussian A Gaussian normal function is applied to the image histogram.
SCLMIN: The image data is scaled between SCLMIN and SCLMAX before display. Default = 0.
SCLMAX: The image data is scaled between SCLMIN and SCLMAX before display. Default = 255.
SIGMA: The sigma scale factor for Gaussian scaling. Default is 1.0.
_EXTRA: Any keywords appropriate for the CATIMAGE SetProperty method.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)
NAME:
SCALEIMAGE__DEFINE
PURPOSE:
The purpose of this routine is to provide a CATIMAGE object that can be scaled or
stretched. The algorithm for scaling is similar to this (linear scaling is shown):
image = ORIGINAL_IMAGE
i = WHERE(image EQ MISSING_VALUE, count)
IF count GT 0 THEN image[i] = MISSING_COLOR
image = BytScl(image, MIN=SCLMIN, MAX=SCLMAX, TOP=NCOLORS-1) + BOTTOM
Scaling or stretching types include: linear, 2% linear, gamma, log, hyperbolic sine,
square-root, equilization, and gaussian. See this article for additional information:
http://www.idlcoyote.com/ip_tips/xstretch.php
Scaling only applies to 2D images. True-color images are not scaled and none
of the scaling parameters apply to them. Supported methods of scaling are
AUTHORS:
FANNING SOFTWARE CONSULTING
1645 Sheely Drive
Fort Collins
CO 80526 USA
Phone: 970-221-0438
E-mail: davidf@dfanning.com
CATEGORY:
Objects.
SYNTAX:
theObject = Obj_New("SCALEIMAGE")
CATIMAGEES:
CATIMAGE
CATATOM
CATCONTAINER IDLITCOMPONENT
IDL_CONTAINER
CLASS_STRUCTURE:
class = { SCALEIMAGE, $
bottom: 0, $ ; The lowest value in the image.
missing_value: Ptr_New(), $ ; The missing value in the image.
missing_color: 0, $ ; The color index for missing colors.
ncolors: 0, $ ; The number of colors to display.
sclmin: 0.0D, $ ; The minimum scale value.
sclmax: 0.0D, $ ; The maximun scale value.
gamma: 0.0D, $ ; The gamma scale factor.
beta: 0.0D, $ ; The beta scale factor.
mean: 0.0D, $ ; The mean scale factor.
exponent: 0.0, $ ; The exponent scale factor.
scaletype: 0, $ ; The type of scaling.
INHERITS CATIMAGE $
}
MESSAGES:
None.
MODIFICATION_HISTORY:
Written by: David Fanning, 27 July 2006.
(See C:\IDL\Catalyst\source\data\scaleimage__define.pro)