MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
LTIBandSelectFilter Class Reference

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

#include <lti_bandSelectFilter.h>

Inheritance diagram for LTIBandSelectFilter:
Collaboration diagram for LTIBandSelectFilter:

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 LTIPixelgetPixelProps () const
 get the pixel properties of the image More...
 
const LTIPixelgetMinDynamicRange () const
 get the minimum dynamic range value of image More...
 
const LTIPixelgetMaxDynamicRange () 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 LTIPixelgetBackgroundPixel () const
 get the values of the background pixel More...
 
const LTIPixelgetNoDataPixel () 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 LTIMetadataDatabasegetMetadata () 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 LTIPixelLookupTablegetPixelLookupTable () const
 get the color lookup table, if any More...
 
const LTIGeoCoordgetGeoCoord () 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...
 
void setProgressDelegate (LTIProgressDelegate *delegate)
 set progress delegate More...
 
LTIProgressDelegategetProgressDelegate () const
 get progress delegate More...
 
void setInterruptDelegate (LTIInterruptDelegate *delegate)
 set interrupt delegate More...
 
LTIInterruptDelegategetInterruptDelegate () 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
 
LTIImageStagegetPreviousStage (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...
 
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...
 
LTIPixelcreateBackgroundPixel () 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 LTIBandSelectFiltercreate (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

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  )
protectedvirtual

Member Function Documentation

static LTIBandSelectFilter* LTIBandSelectFilter::create ( void  )
static
LT_STATUS LTIBandSelectFilter::decodeBegin ( const LTIPixel pixelProps,
const LTIScene fullScene 
)
protectedvirtual

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
pixelPropsthe band selection
fullScenethe full scene to be read
Returns
status code indicating success or failure

Implements LTIImageStage.

LT_STATUS LTIBandSelectFilter::decodeEnd ( void  )
protectedvirtual

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 
)
protectedvirtual

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
stripBufferthe buffer to read the pixels into
stripScenethe 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
scenethe 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
scenethe area pertaining to this request
Returns
a bitfield itemizing the encoding modifications

Reimplemented from LTIImageFilter.

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
srcImagesinput images, for each output band
srcImageBandsband numbers, for each output band
numOutputBandsnumber of output bands
colorSpacethe 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
srcImagesinput images
numOutputBandsnumber of output bands
colorSpacethe 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
srcImageinput image
srcImageBandsband numbers, for each output band
numOutputBandsnumber of output bands
colorSpacethe 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
inputStringthe string to parse
bandListreturned array of band numbers
numBandslength 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
stripHeightthe 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:

LizardTech