LTIMosaicFilter Class Reference

create a single mosaicked image from a set of images More...

#include <lti_mosaicFilter.h>

Inheritance diagram for LTIMosaicFilter:

Inheritance graph
[legend]
Collaboration diagram for LTIMosaicFilter:

Collaboration graph
[legend]

List of all members.

Public Types

enum  AlphaMode { DoNothing, FromMerge, FromSourceRectangle }

Public Member Functions

LT_STATUS initialize (LTIImageStageManager *imageStageManager, const LTIPixel *backgroundPixel, bool useMultires, bool mergeMetadata=true, AlphaMode alphaMode=DoNothing)
 initializer
LT_STATUS getDimsAtMag (double mag, lt_uint32 &width, lt_uint32 &height) const
 get image width and height at given magnification
lt_int64 getEncodingCost (const LTIScene &scene) const
 get the cost to encode this scene
bool getReaderScene (const LTIScene &decodeScene, LTIScene &readerScene) const
 get the underlying scene to be used
virtual lt_uint32 getModifications (const LTIScene &scene) const
 get the modification bitfield for this image
LTIMaskSource * getMask () const
bool getPipelineInfo (LTIPipelineInfo info) const
void setFillMethod (LTIPixelFillMethod method, double fuzzyThreshold)
 Set the fill method which controls how noData pixels are matched.
LTIPixelFillMethod getFillMethod (void) const
 Get the fill method.
double getFuzzyThreshold (void) const
void setResampleMethod (LTIResampleMethod resampleMethod)
 Set resampling method.
void setMagSnapThreshold (double threshold)
LTIResampleMethod getResampleMethod (void) const
 Get the fill method.
bool getReaderScene (lt_uint32 child, const LTIScene &decodeScene, LTIScene &mosaicScene, LTIScene &readerScene) const
bool getOverviewReaderScene (const LTIScene &decodeScene, LTIScene &mosaicScene, LTIScene &readerScene) const
LT_STATUS forEachImageStageInScene (const LTIScene &scene, InSceneCallback &callback)
void setDeleteImages (bool deleteImages)
bool getDeleteImages (void) const
LT_STATUS loadImage (lt_uint32 i, LTIEmbeddedImage *&embedded, LTIImageStage *&raw)
LT_STATUS closeImage (lt_uint32 i)
LT_STATUS setPipelineBuilder (LTIPipelineBuilder *pipelineBuilder)
const LTIRTree & getRTree (void) const
LTIImageStageManagergetImageStageManager (void) const
bool hasOverviewImage (void) const
double getOverviewMag (void) const

Static Public Member Functions

static LTIMosaicFiltercreate (void)
static LT_STATUS checkResolutionConformance (LTIImageStageManager *imageStageManager, bool useMultires)
 Check if a set of images can be mosaicked together.

Protected Member Functions

 LTIMosaicFilter (void)
virtual ~LTIMosaicFilter (void)
LT_STATUS decodeBegin (const LTIPixel &pixelProps, const LTIScene &fullScene)
 start strip-based read
LT_STATUS decodeStrip (LTISceneBuffer &stripBuffer, const LTIScene &stripScene)
 read a strip from the image
LT_STATUS decodeEnd (void)
 finish strip-based read

Classes

class  InSceneCallback


Detailed Description

This class create a single mosaicked image from a set of images.

The set of input images are all assumed to be in the same coordinate space. In general, all the images must have the same resolution; differences that are within a small epsilon or exactly a power of two are optionally allowed.

Definition at line 43 of file lti_mosaicFilter.h.


Member Enumeration Documentation

Enumerator:
DoNothing 
FromMerge 
FromSourceRectangle 

Definition at line 58 of file lti_mosaicFilter.h.


Constructor & Destructor Documentation

LTIMosaicFilter::LTIMosaicFilter ( void   )  [protected]

virtual LTIMosaicFilter::~LTIMosaicFilter ( void   )  [protected, virtual]


Member Function Documentation

static LTIMosaicFilter* LTIMosaicFilter::create ( void   )  [static]

LT_STATUS LTIMosaicFilter::initialize ( LTIImageStageManager imageStageManager,
const LTIPixel backgroundPixel,
bool  useMultires,
bool  mergeMetadata = true,
AlphaMode  alphaMode = DoNothing 
)

Creates an image stage which is a mosaic of the set of input images.

In order to create a mosaic, the ground resolution of all component images must match exactly or be offset by a power of two. For example, two images having 1m resolution can be mosaicked with an image having .5m resolution. However, an image with 1ft resolution will cause an error condition. Slight variations in resolution will be automatically tolerated to accommodate differences in floating-point representation.

The "useMultires" flag will allow images to be mosaicked that do *not* have compatible ground resolution. Setting this flag will cause some images in the mosaic to be resampled to achieve compatible resolution.

Transparency settings are honored by the mosaic process.

Parameters:
imageStageManager manages the set of input images
backgroundPixel color to use for the background of the mosaic
useMultires resample images with incompatible resolution
mergeMetadata merge input-file-name, input-file-size and modifications

static LT_STATUS LTIMosaicFilter::checkResolutionConformance ( LTIImageStageManager imageStageManager,
bool  useMultires 
) [static]

The parameters to this function mirror those of the constructor: this function will return LT_STS_Success if and only if the images' resolutions are such that a mosaic can be produced.

Parameters:
imageStageManager manages the set of input images
useMultires allow images with incompatible resolution
Returns:
status code indicating success or failure

LT_STATUS LTIMosaicFilter::getDimsAtMag ( double  mag,
lt_uint32 width,
lt_uint32 height 
) const [virtual]

This function returns the width and height of the image, in pixels, relative to the given magnification.

Parameters:
mag magnification to determine width at
width the image width at the magnification
height the image height at the magnification
Returns:
status code indicating success or failure

Implements LTIImage.

lt_int64 LTIMosaicFilter::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.

bool LTIMosaicFilter::getReaderScene ( const LTIScene decodeScene,
LTIScene readerScene 
) const [virtual]

Get the scene that will be sent to the underlying LTIImageReader. This is useful in some complex pipelines.

Parameters:
decodeScene the scene that would be given to read()
readerScene the scene that is the actual scene passed the underlying image reader
Returns:
true if readerScene is not empty

Implements LTIImageStage.

virtual lt_uint32 LTIMosaicFilter::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.

LTIMaskSource* LTIMosaicFilter::getMask (  )  const [virtual]

Implements LTIImageStage.

bool LTIMosaicFilter::getPipelineInfo ( LTIPipelineInfo  info  )  const [virtual]

Implements LTIImageStage.

void LTIMosaicFilter::setFillMethod ( LTIPixelFillMethod  method,
double  fuzzyThreshold 
)

Parameters:
method fill method enum. See LTIPixelFillMethod
fuzzyThreshold fill method enum. See LTIPixelFillMethod

LTIPixelFillMethod LTIMosaicFilter::getFillMethod ( void   )  const

double LTIMosaicFilter::getFuzzyThreshold ( void   )  const

void LTIMosaicFilter::setResampleMethod ( LTIResampleMethod  resampleMethod  ) 

Parameters:
resampleMethod resampling method See LTIResampleMethod

void LTIMosaicFilter::setMagSnapThreshold ( double  threshold  ) 

LTIResampleMethod LTIMosaicFilter::getResampleMethod ( void   )  const

bool LTIMosaicFilter::getReaderScene ( lt_uint32  child,
const LTIScene decodeScene,
LTIScene mosaicScene,
LTIScene readerScene 
) const

bool LTIMosaicFilter::getOverviewReaderScene ( const LTIScene decodeScene,
LTIScene mosaicScene,
LTIScene readerScene 
) const

LT_STATUS LTIMosaicFilter::forEachImageStageInScene ( const LTIScene scene,
InSceneCallback callback 
)

void LTIMosaicFilter::setDeleteImages ( bool  deleteImages  ) 

bool LTIMosaicFilter::getDeleteImages ( void   )  const

LT_STATUS LTIMosaicFilter::loadImage ( lt_uint32  i,
LTIEmbeddedImage *&  embedded,
LTIImageStage *&  raw 
)

LT_STATUS LTIMosaicFilter::closeImage ( lt_uint32  i  ) 

LT_STATUS LTIMosaicFilter::setPipelineBuilder ( LTIPipelineBuilder *  pipelineBuilder  ) 

const LTIRTree& LTIMosaicFilter::getRTree ( void   )  const

LTIImageStageManager& LTIMosaicFilter::getImageStageManager ( void   )  const

bool LTIMosaicFilter::hasOverviewImage ( void   )  const

double LTIMosaicFilter::getOverviewMag ( void   )  const

LT_STATUS LTIMosaicFilter::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 LTIMosaicFilter::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 LTIMosaicFilter::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.


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

LizardTech