MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
LTIBandSelectFilter Class Reference

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

#include <lti_bandSelectFilter.h>

Inheritance 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
 
LT_STATUS setStripHeight (lt_uint32 stripHeight)
 
lt_int64 getEncodingCost (const LTIScene &scene) const
 
virtual lt_uint32 getModifications (const LTIScene &scene) const
 
LT_STATUS remapBands (const lt_uint16 srcImageBands[])
 
LT_STATUS getBandMap (lt_uint16 srcImageBands[]) const
 

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)
 
LT_STATUS decodeStrip (LTISceneBuffer &stripBuffer, const LTIScene &stripScene)
 
LT_STATUS decodeEnd (void)
 
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 
)
protected
LT_STATUS LTIBandSelectFilter::decodeEnd ( void  )
protected
LT_STATUS LTIBandSelectFilter::decodeStrip ( LTISceneBuffer stripBuffer,
const LTIScene stripScene 
)
protected
LT_STATUS LTIBandSelectFilter::getBandMap ( lt_uint16  srcImageBands[]) const
lt_int64 LTIBandSelectFilter::getEncodingCost ( const LTIScene scene) const
virtual lt_uint32 LTIBandSelectFilter::getModifications ( const LTIScene scene) const
virtual
lt_uint32 LTIBandSelectFilter::getStripHeight ( ) const
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)

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