MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- Main Page
- Namespaces
- Classes
- Files
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
LTIBandSelectFilter Class Reference

combine N different bands from M images into one N-banded image More...

`#include <lti_bandSelectFilter.h>`

Inheritance diagram for LTIBandSelectFilter:
[legend]
Collaboration diagram for LTIBandSelectFilter:
[legend]

## Public Member Functions
LT_STATUS | initialize (LTIImageStage *srcImages[], const int srcImageBands[], lt_uint16 numOutputBands, LTIColorSpace colorSpace)
| general initializer More...
LT_STATUS | initialize (LTIImageStage *srcImages[], lt_uint16 numOutputBands, LTIColorSpace colorSpace)
| LTIColorCompositeFilter initializer. More...
LT_STATUS | initialize (LTIImageStage *srcImage, const lt_uint16 srcImageBands[], lt_uint16 numOutputBands, LTIColorSpace colorSpace)
| single image initializer More...
lt_uint32 | getStripHeight () const
| get strip height More...
LT_STATUS | setStripHeight (lt_uint32 stripHeight)
| set the strip height More...
lt_int64 | getEncodingCost (const LTIScene &scene) const
| get the cost to encode this scene More...
virtual lt_uint32 | getModifications (const LTIScene &scene) const
| get the modification bitfield for this image More...
LT_STATUS | remapBands (const lt_uint16 srcImageBands[])
LT_STATUS | getBandMap (lt_uint16 srcImageBands[]) const
Public Member Functions inherited from LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > > >
const LTIPixel & | getPixelProps () const
| get the pixel properties of the image More...
const LTIPixel & | getMinDynamicRange () const
| get the minimum dynamic range value of image More...
const LTIPixel & | getMaxDynamicRange () const
| get the maximum dynamic range value of image More...
LT_STATUS | overridePixelBPS (lt_uint8 bps)
| override the bits-per-sample of the image's (sample's) datatype More...
LT_STATUS | overrideDynamicRange (const LTIPixel &drmin, const LTIPixel &drmax)
| override the dynamic range of the image More...
Public Member Functions inherited from LTIOverrideBackgroundPixel< LTIOverrideMetadata< LTIImageFilter > >
const LTIPixel * | getBackgroundPixel () const
| get the values of the background pixel More...
const LTIPixel * | getNoDataPixel () const
| get the values of the "no data" (transparency) pixel More...
LT_STATUS | overrideBackgroundPixel (const LTIPixel *backgroundPixel)
| override the background color of the image More...
LT_STATUS | overrideNoDataPixel (const LTIPixel *nodataPixel)
| override the "no data" (transparency) color of the image More...
Public Member Functions inherited from LTIOverrideMetadata< LTIImageFilter >
const LTIMetadataDatabase & | getMetadata () const
| get the metadata associated with the image More...
LT_STATUS | overrideMetadata (const LTIMetadataDatabase &metadata)
| override the metadata of the image More...
Public Member Functions inherited from LTIImageFilter
lt_uint32 | getWidth () const
| get image width More...
lt_uint32 | getHeight () const
| get image height More...
LT_STATUS | getDimsAtMag (double mag, lt_uint32 &width, lt_uint32 &height) const
| get image width and height at given magnification More...
const LTIPixelLookupTable * | getPixelLookupTable () const
| get the color lookup table, if any More...
const LTIGeoCoord & | getGeoCoord () const
| get the geographic coordinates of the image More...
bool | isGeoCoordImplicit () const
| is geo information "real" or not More...
double | getMinMagnification () const
| get the minimum magnification More...
double | getMaxMagnification () const
| get the maximum magnification More...
bool | isSelective () const
| check if image supports "random access" decoding More...
lt_uint32 | getModifications (const LTIScene &scene) const
| get the modification bitfield for this image More...
LT_STATUS | getMetadataBlob (const char *type, LTIOStreamInf *&stream) const
| extract the metadata associated with the image of the given type More...
void | setProgressDelegate (LTIProgressDelegate *delegate)
| set progress delegate More...
LTIProgressDelegate * | getProgressDelegate () const
| get progress delegate More...
void | setInterruptDelegate (LTIInterruptDelegate *delegate)
| set interrupt delegate More...
LTIInterruptDelegate * | getInterruptDelegate () const
| get interrupt delegate More...
lt_uint32 | getStripHeight () const
| get strip height More...
LT_STATUS | setStripHeight (lt_uint32 stripHeight)
| set the strip height More...
lt_int64 | getEncodingCost (const LTIScene &scene) const
| get the cost to encode this scene More...
bool | getReaderScene (const LTIScene &decodeScene, LTIScene &readerScene) const
| get the underlying scene to be used More...
LT_STATUS | overrideGeoCoord (const LTIGeoCoord &geoCoord)
| override the geographic coordinates of the image More...
LT_STATUS | overridePixelLookupTable (const LTIPixelLookupTable *pixelLookupTable)
| override the CLUT of the image More...
LTIMaskSource * | getMask () const
bool | getPipelineInfo (LTIPipelineInfo info) const
LTIImageStage * | getPreviousStage (void) const
Public Member Functions inherited from LTIImageStage
LT_STATUS | read (const LTIScene &scene, LTISceneBuffer &buffer)
| read (decode) a scene from the image More...
virtual LT_STATUS | readBegin (const LTIPixel &pixelProps, const LTIScene &fullScene)
| start strip-based read More...
virtual LT_STATUS | readStrip (LTISceneBuffer &buffer, const LTIScene &stripScene)
| read a strip from the image More...
virtual LT_STATUS | readEnd ()
| finish strip-based read More...
lt_uint32 | getNumStrips () const
| get number of strips in scene More...
LTIScene | getStripScene (lt_uint32 stripNumber) const
| get a strip for current scene More...
Public Member Functions inherited from LTIImage
lt_uint16 | getNumBands () const
| get number of bands More...
lt_uint16 | getNumBandsWithoutAlpha () const
| get number of bands without alpha More...
LTIColorSpace | getColorSpace () const
| get colorspace More...
LTIDataType | getDataType () const
| get data type More...
bool | isNaturalDynamicRange () const
| check if the range is "complete" or not More...
lt_int64 | getNominalImageSizeWithoutAlpha () const
| get the nominal size of the image, not considering the alpha band More...
lt_int64 | getNominalImageSizeWithAlpha () const
| get the nominal size of the image, including the alpha band More...
void | getGeoPoint (LTIPosition position, double &x, double &y) const
| get position of a named point More...
LTIPixel * | createBackgroundPixel () const
| return new background pixel More...
Public Member Functions inherited from LTIReferenceCountedObject
virtual void | retain (void) const
| increment reference counter More...
virtual void | release (void) const
| decrement the reference counter and delete the object when the counter is zero More...

## Static Public Member Functions
static LTIBandSelectFilter * | create (void)
static LT_STATUS | parseString (const char *inputString, lt_int32 *&bandList, lt_uint16 &numBands)
| parse band string More...
static LT_STATUS | push (LTIImageStage *&pipeline, const LTIPixel &pixelProps)
static void | remapPixel (const LTIPixel &srcPixel, const lt_uint16 srcImageBands[], LTIPixel &dstPixel)

## Protected Types
enum | SourcePixel { NodataPixel, BackgroundPixel, DRMinPixel, DRMaxPixel }

## Protected Member Functions
| LTIBandSelectFilter (void)
virtual | ~LTIBandSelectFilter (void)
LT_STATUS | decodeBegin (const LTIPixel &pixelProps, const LTIScene &fullScene)
| start strip-based read More...
LT_STATUS | decodeStrip (LTISceneBuffer &stripBuffer, const LTIScene &stripScene)
| read a strip from the image More...
LT_STATUS | decodeEnd (void)
| finish strip-based read More...
void | remapPixel (LTIPixel &pixel, SourcePixel name) const

## Protected Attributes
BandSelectMap * | m_bandSelectMap
BandSelectMap * | m_decodeMap

## Detailed Description

This class creates a single N-banded image which is a composition of N different bands from a set of images.

For example, an RGB image can be created from three (nominally grayscale) images which represent the red, green, and blue bands of a dataset. More generally, one can do things like construct a multispectral image from 1st and 2nd bands of one image and the 3rd and 4th bands of a second image.

Definition at line 38 of file lti_bandSelectFilter.h.

## Member Enumeration Documentation

enum LTIBandSelectFilter::SourcePixel
| protected

Enumerator
NodataPixel |
BackgroundPixel |
DRMinPixel |
DRMaxPixel |

Definition at line 172 of file lti_bandSelectFilter.h.

## Constructor & Destructor Documentation

LTIBandSelectFilter::LTIBandSelectFilter | ( | void | ) |  |
| protected

virtual LTIBandSelectFilter::~LTIBandSelectFilter | ( | void | ) |  |
| protected virtual

## Member Function Documentation

static LTIBandSelectFilter* LTIBandSelectFilter::create | ( | void | ) |  |
| static

LT_STATUS LTIBandSelectFilter::decodeBegin | ( | const LTIPixel & | pixelProps,
|  | const LTIScene & | fullScene
| ) |  |
| protected virtual

This function is called by readBegin() to start the actual class-specific work for decoding a scene.

Derived classes must implement this function.

This function should never be called directly.

Parameters

  pixelProps | the band selection
  fullScene | the full scene to be read

Returns
  status code indicating success or failure

Implements LTIImageStage.

LT_STATUS LTIBandSelectFilter::decodeEnd | ( | void | ) |  |
| protected virtual

This function is called by readEnd() to complete the actual class-specific work for decoding a scene.

Derived classes must implement this function.

This function should never be called directly.

Returns
  status code indicating success or failure

Implements LTIImageStage.

LT_STATUS LTIBandSelectFilter::decodeStrip | ( | LTISceneBuffer & | stripBuffer,
|  | const LTIScene & | stripScene
| ) |  |
| protected virtual

This function is called by readStrip() to implement the actual class-specific work for decoding a strip of the scene.

Derived classes must implement this function.

This function should never be called directly.

Parameters

  stripBuffer | the buffer to read the pixels into
  stripScene | the scene for this strip being decoded

Returns
  status code indicating success or failure

Implements LTIImageStage.

LT_STATUS LTIBandSelectFilter::getBandMap | ( | lt_uint16 | srcImageBands[]) |  | const

lt_int64 LTIBandSelectFilter::getEncodingCost | ( | const LTIScene & | scene) |  | const
| virtual

Returns the "cost" to encode this scene, for use by those image writers which have usage metering enabled. The typical cost is equal to the nominal image size (width * height * numBands * bytesPerSample), but this is overridden for special situations, e.g. the mosaic filter.

Parameters

  scene | the scene to be charged for

Returns
  the cost to encode the given scene

Implements LTIImageStage.

virtual lt_uint32 LTIBandSelectFilter::getModifications | ( | const LTIScene & | scene) |  | const
| virtual

This function returns a bitfield describing what kinds of modifications have been made to the image during and since its initial encoding.

Parameters

  scene | the area pertaining to this request

Returns
  a bitfield itemizing the encoding modifications

Implements LTIImage.

lt_uint32 LTIBandSelectFilter::getStripHeight | ( | ) |  | const
| virtual

Returns the strip height used in read() calls.

Reader classes should set this. Filter classes should inherit the stripheight of their pipeline predecessor. A writer class will force the stripheight of the pipeline to match its stripheight.

Returns
  the strip height

Implements LTIImageStage.

LT_STATUS LTIBandSelectFilter::initialize | ( | LTIImageStage * | srcImages[],
|  | const int | srcImageBands[],
|  | lt_uint16 | numOutputBands,
|  | LTIColorSpace | colorSpace
| ) |  |

Creates an image stage which composes the specified bands of the input images.

The srcImages and srcImageBands arrays each contain numOutputBands elements and serve to describe the bands of the desired output image. That is, band i of the output image will contain band srcImageBands[i] from image srcImages[i].

An element of srcImages may be NULL. In this case, however, the corresponding srcImageBands element must be set to (int)-'Z', indicating a band of all zeros is to be used.

At least one of the srcImages elements must be non-NULL.

Note: Data from srcImages and srcImageBands arrays are copied locally after initialize() is called.

Parameters

  srcImages | input images, for each output band
  srcImageBands | band numbers, for each output band
  numOutputBands | number of output bands
  colorSpace | the colorspace of the output image

LT_STATUS LTIBandSelectFilter::initialize | ( | LTIImageStage * | srcImages[],
|  | lt_uint16 | numOutputBands,
|  | LTIColorSpace | colorSpace
| ) |  |

Same as the above general constructor, except that (1) each source image is either a one-banded image or NULL, and (2) the srcImageBands array is constructed as the form [0,1,2...].

(This provides compatability with the old LTIColorCompositeFilter class.)

Parameters

  srcImages | input images
  numOutputBands | number of output bands
  colorSpace | the colorspace of the output image

LT_STATUS LTIBandSelectFilter::initialize | ( | LTIImageStage * | srcImage,
|  | const lt_uint16 | srcImageBands[],
|  | lt_uint16 | numOutputBands,
|  | LTIColorSpace | colorSpace
| ) |  |

Same as the above general constructor, except that (1) a single source image is used, instead of an array of possibly different images, and (2) the output image has the same number of bands and colorspace as the input image.

(This provides compatability with the old LTISampleMapTransformer class.)

Parameters

  srcImage | input image
  srcImageBands | band numbers, for each output band
  numOutputBands | number of output bands
  colorSpace | the colorspace of the output image

static LT_STATUS LTIBandSelectFilter::parseString | ( | const char * | inputString,
|  | lt_int32 *& | bandList,
|  | lt_uint16 & | numBands
| ) |  |
| static

Given a string such as "1,3-4,2", this function will return an array like [1,3,4,2].

The formal grammar of the input string is (ignoring whitespace): string := token? (comma token)* token := letter | number | number hyphen number letter := 'Z' number := digit+ digit := '0' | '1' | ... '9' comma := ',' hyphen := '-' Note that the range may be negative, i.e. "3-1" will be returned as [3,2,1]. A band value of Z indicates a band of all zeros should be used.

The caller takes ownership of the returned array.

Note that the caller may need to adjust the data in the returned array to be zero-based.

Parameters

  inputString | the string to parse
  bandList | returned array of band numbers
  numBands | length of bandList arrat

Returns
  status code

static LT_STATUS LTIBandSelectFilter::push | ( | LTIImageStage *& | pipeline,
|  | const LTIPixel & | pixelProps
| ) |  |
| static

LT_STATUS LTIBandSelectFilter::remapBands | ( | const lt_uint16 | srcImageBands[]) |  |

static void LTIBandSelectFilter::remapPixel | ( | const LTIPixel & | srcPixel,
|  | const lt_uint16 | srcImageBands[],
|  | LTIPixel & | dstPixel
| ) |  |
| static

void LTIBandSelectFilter::remapPixel | ( | LTIPixel & | pixel,
|  | SourcePixel | name
| ) |  | const
| protected

LT_STATUS LTIBandSelectFilter::setStripHeight | ( | lt_uint32 | stripHeight) |  |
| virtual

Sets the strip height to be used in decoding. This is the number of rows to be decoded in each strip of the read() sequence.

Reader classes should implement this directly. (LTIImageFilter implements this as a call to setStripHeight() on the previous stage.)

Parameters

  stripHeight | the number of rows to decode at one time

Returns
  status code indicating success or failure

Implements LTIImageStage.

## Member Data Documentation

BandSelectMap* LTIBandSelectFilter::m_bandSelectMap
| protected

Definition at line 181 of file lti_bandSelectFilter.h.

BandSelectMap* LTIBandSelectFilter::m_decodeMap
| protected

Definition at line 182 of file lti_bandSelectFilter.h.

The documentation for this class was generated from the following file:

- lti_bandSelectFilter.h

LizardTech