MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
LTIMosaicFilter Class Reference

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

#include <lti_mosaicFilter.h>

Inheritance diagram for LTIMosaicFilter:
LTIOverrideDimensions< LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideIsSelective< LTIOverrideStripHeight< LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > > > > > > > > LTIOverridePixelProps< LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideIsSelective< LTIOverrideStripHeight< LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > > > > > > > LTIOverrideDimensionsData LTIOverrideBackgroundPixel< LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideIsSelective< LTIOverrideStripHeight< LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > > > > > > LTIOverridePixelPropsData LTIOverrideGeoCoord< LTIOverrideMagnification< LTIOverrideIsSelective< LTIOverrideStripHeight< LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > > > > > LTIOverrideBackgroundPixelData LTIOverrideMagnification< LTIOverrideIsSelective< LTIOverrideStripHeight< LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > > > > LTIOverrideGeoCoordData LTIOverrideIsSelective< LTIOverrideStripHeight< LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > > > LTIOverrideMagnificationData LTIOverrideStripHeight< LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > > LTIOverrideIsSelectiveData LTIOverrideDelegates< LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > > LTIOverrideStripHeightData LTIOverridePixelLookupTables< LTIOverrideMetadata< LTIImageStage > > LTIOverrideDelegatesData LTIOverrideMetadata< LTIImageStage > LTIOverridePixelLookupTablesData LTIImageStage LTIOverrideMetadataData LTIImage LTIReferenceCountedObject

List of all members.

Classes

class  InSceneCallback

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

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 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:
imageStageManagermanages the set of input images
useMultiresallow images with incompatible resolution
Returns:
status code indicating success or failure
static LTIMosaicFilter* LTIMosaicFilter::create ( void  ) [static]
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:
pixelPropsthe band selection
fullScenethe full scene to be read
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.

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:
stripBufferthe buffer to read the pixels into
stripScenethe scene for this strip being decoded
Returns:
status code indicating success or failure

Implements LTIImageStage.

bool LTIMosaicFilter::getDeleteImages ( void  ) const
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:
magmagnification to determine width at
widththe image width at the magnification
heightthe 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:
scenethe scene to be charged for
Returns:
the cost to encode the given scene

Implements LTIImageStage.

double LTIMosaicFilter::getFuzzyThreshold ( void  ) const
LTIMaskSource* LTIMosaicFilter::getMask ( ) const [virtual]

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:
scenethe area pertaining to this request
Returns:
a bitfield itemizing the encoding modifications

Implements LTIImage.

double LTIMosaicFilter::getOverviewMag ( void  ) const
bool LTIMosaicFilter::getOverviewReaderScene ( const LTIScene decodeScene,
LTIScene mosaicScene,
LTIScene readerScene 
) const
bool LTIMosaicFilter::getPipelineInfo ( LTIPipelineInfo  info) const [virtual]

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:
decodeScenethe scene that would be given to read()
readerScenethe scene that is the actual scene passed the underlying image reader
Returns:
true if readerScene is not empty

Implements LTIImageStage.

bool LTIMosaicFilter::getReaderScene ( lt_uint32  child,
const LTIScene decodeScene,
LTIScene mosaicScene,
LTIScene readerScene 
) const
const LTIRTree& LTIMosaicFilter::getRTree ( void  ) const
bool LTIMosaicFilter::hasOverviewImage ( void  ) const
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:
imageStageManagermanages the set of input images
backgroundPixelcolor to use for the background of the mosaic
useMultiresresample images with incompatible resolution
mergeMetadatamerge input-file-name, input-file-size and modifications
void LTIMosaicFilter::setDeleteImages ( bool  deleteImages)
void LTIMosaicFilter::setFillMethod ( LTIPixelFillMethod  method,
double  fuzzyThreshold 
)
Parameters:
methodfill method enum. See LTIPixelFillMethod
fuzzyThresholdfill method enum. See LTIPixelFillMethod
void LTIMosaicFilter::setMagSnapThreshold ( double  threshold)
LT_STATUS LTIMosaicFilter::setPipelineBuilder ( LTIPipelineBuilder *  pipelineBuilder)
Parameters:
resampleMethodresampling method See LTIResampleMethod

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