25 #ifdef OSSIM_ID_ENABLED 26 static const char OSSIM_ID[] =
"$Id: ossimOverviewSequencer.cpp 23377 2015-06-17 18:03:05Z okramer $";
29 static ossimTrace traceDebug(
"ossimOverviewSequencer:debug");
41 m_numberOfTilesHorizontal(0),
42 m_numberOfTilesVertical(0),
43 m_currentTileNumber(0),
46 m_decimationFactor(2),
51 m_scanForMinMax(false),
52 m_scanForMinMaxNull(false),
62 <<
"ossimOverviewSequencer::ossimOverviewSequencer entered..." 65 #ifdef OSSIM_ID_ENABLED 83 <<
"ossimOverviewSequencer::~ossimOverviewSequencer entered..." 248 <<
"pixels: " << pixels <<
"\n" 249 <<
"PIXEL_TO_SAMPLE: " << PIXEL_TO_SAMPLE <<
"\n";
252 if (pixels > PIXEL_TO_SAMPLE)
353 <<
"ossimOverviewSequencer::getNextTile ERROR:" 355 if ( inputTile.
valid() )
360 else if ( inputTile.
valid() )
377 <<
"ossimOverviewSequencer::getNextTile DEBUG:" 399 <<
"ossimOverviewSequencer::getNextTile DEBUG:" 400 <<
"\nRequest failed for input rect: " << inputRect
466 static const char M[] =
"ossimOverviewSequencer::writeOmdFile";
490 <<
"Original array values:\n";
491 std::vector<ossim_float64>::const_iterator i =
m_minValues.begin();
496 <<
"min[" << band++ <<
"]: " << *i <<
"\n";
504 <<
"max[" << band++ <<
"]: " << *i <<
"\n";
512 <<
"nul[" << band++ <<
"]: " << *i <<
"\n";
653 << __FILE__ <<
":" << __LINE__
654 <<
" " << M <<
"\nUnhandled scalar type: " << SCALAR << std::endl;
666 << M <<
"ERROR:\nMin, max and null array sizes bad! No omd file will be written." 723 result = kwl.
write(file.c_str());
737 <<
"Final array values:\n";
738 std::vector<ossim_float64>::const_iterator i =
m_minValues.begin();
743 <<
"min[" << band++ <<
"]: " << *i <<
"\n";
751 <<
"max[" << band++ <<
"]: " << *i <<
"\n";
759 <<
"nul[" << band++ <<
"]: " << *i <<
"\n";
785 <<
"ossimOverviewSequencer::getInputTileRectangle DEBUG:" 786 <<
"input rect: " << inputRect << std::endl;
814 <<
"ossimOverviewSequencer::getOutputTileRectangle DEBUG:" 815 <<
"output rect: " << outputRect << std::endl;
902 <<
"ossimOverviewSequencer::resampleTile Unknown pixel type!" 916 <<
"ossimOverviewSequencer::resampleTile DEBUG: " 918 <<
"\ninput tile:\n" << *inputTile
938 const T* s =
static_cast<const T*
>(inputTile->
getBuf(band));
941 nullPixel =
static_cast<T
>(inputTile->
getNullPix(band));
956 d[j] =
static_cast<T
>( value/weight );
983 const T* s =
static_cast<const T*
>(inputTile->
getBuf(band));
986 nullPixel =
static_cast<T
>(inputTile->
getNullPix(band));
1006 ul = *(s + lineOffset1 + sampOffset);
1007 ur = *(s + lineOffset1 + sampOffset + 1);
1008 ll = *(s + lineOffset2 + sampOffset);
1009 lr = *(s + lineOffset2 + sampOffset + 1);
1034 d[j] =
static_cast<T
>( value/weight );
16 bit unsigned integer (15 bits used)
virtual ossim_uint32 getWidth() const
void setScanForMinMaxNull(bool flag)
Turn on/off scan for min, max, null flag.
ossim_uint32 m_currentTileNumber
std::vector< ossim_float64 > m_maxValues
ossim_uint32 getNumberOfTilesHorizontal() const
ossim_int32 m_decimationFactor
TODO make this handle any decimation.
virtual ossim_uint32 getNumberOfBands() const
virtual void setImageRectangle(const ossimIrect &rect)
ossim_uint32 m_histoTileIndex
Used to determine which tiles to accumulate a histogram from.
virtual void populateHistogram(ossimRefPtr< ossimMultiBandHistogram > histo)
virtual void setWidthHeight(ossim_uint32 w, ossim_uint32 h)
Represents serializable keyword/value map.
bool addFile(const char *file)
virtual void computeMinMaxPix(std::vector< ossim_float64 > &minBands, std::vector< ossim_float64 > &maxBands) const
If the minBands and maxBands are empty or not equal to the imageData's current number of bands it wil...
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
ossimOverviewSequencer()
default constructor
ossimRefPtr< ossimImageData > m_tile
ossimReferenced allows for shared object ref counting if the reference count ever gets to 0 or less i...
ossimRefPtr< ossimImageHandler > m_imageHandler
ossimIrect m_areaOfInterest
virtual bool isMaster() const
ossim_uint32 height() const
ossimRefPtr< ossimBitMaskWriter > m_maskWriter
virtual ossim_uint32 getTileHeight() const
Returns the default processing tile height.
std::vector< ossim_float64 > m_nulValues
virtual void getOutputImageRectangle(ossimIrect &rect) const
Gets the zero-based image rectangle for the output reduced resolution data set (rrds).
std::vector< ossim_float64 > m_minValues
Arrays o hold the min value for each band for scan min/max methods.
ossim_uint32 m_numberOfTilesHorizontal
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ossim_uint32 getHeight() const
ossim_uint32 getNumberOfTilesVertical() const
16 bit unsigned integer (14 bits used)
ossim_uint32 getNumberOfTiles() const
16 bit unsigned integer (13 bits used)
ossimIpt getTileSize() const
unsigned short ossim_uint16
virtual bool write(const char *file, const char *comment=0) const
Methods to dump the ossimKeywordlist to a file on disk.
virtual void initialize()
Initialize the data buffer.
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &rect, ossim_uint32 resLevel=0)
Main entry point for the algorithm.
virtual ossim_uint32 getTileWidth() const
Returns the default processing tile width.
virtual void computeMinMaxNulPix(std::vector< ossim_float64 > &minBands, std::vector< ossim_float64 > &maxBands, std::vector< ossim_float64 > &nulBands) const
Scans tile for min, max, nulls.
#define OSSIM_DEFAULT_TILE_WIDTH
virtual double getMinPixelValue(ossim_uint32 band=0) const
Retuns the min pixel value.
void set_ul(const ossimIpt &pt)
ossimFilterResampler::ossimFilterResamplerType m_resampleType
Currently only handles NEAREST_NEIGHBOR and BOX (default = BOX)
virtual void setToStartOfSequence()
Will set the internal pointers to the upperleft tile number.
bool m_dirtyFlag
Dirty flag - if true, this object is not initialized.
ossimRefPtr< ossimMaskFilter > m_maskFilter
void updateTileDimensions()
Updates theNumberOfTilesHorizontal and theNumberOfTilesVertical.
static ossimImageDataFactory * instance()
void resampleTile(const ossimImageData *inputTile)
Resamples a patch of data.
void writeHistogram()
Write histogram method.
virtual ossimDataObjectStatus validate() const
void setTileSize(const ossimIpt &pt)
updated the tile size.
signed short ossim_sint16
bool getScanForMinMax() const
OSSIM_DLL double defaultNull(ossimScalarType scalarType)
bool m_scanForMinMax
Control flags for min, max, null scanning.
unsigned int ossim_uint32
virtual const ossim_float64 * getNullPix() const
32 bit normalized floating point
ossimRefPtr< ossimMultiBandHistogram > m_histogram
ossim_uint32 m_numberOfTilesVertical
virtual void addHistogram(ossimMultiBandHistogram *histo)
virtual ossimRefPtr< ossimImageData > getNextTile()
Will allow you to get the next tile in the sequence.
ossim_uint32 m_sourceResLevel
This is the resolution level to build overviews from.
Class for computing a mask from an input image source and writing the mask file to disk...
virtual ossimIrect getImageRectangle(ossim_uint32 resLevel=0) const
Returns zero-based bounding rectangle of the image.
ossim_uint32 width() const
void setImageHandler(ossimImageHandler *input)
Sets the input source or connection.
void generateMask(ossimRefPtr< ossimImageData > tile, ossim_uint32 rLevel)
Given a source's tile, derives the alpha mask and saves it in buffer for later writing to disk...
virtual void makeBlank()
Initializes data to null pixel values.
64 bit normalized floating point
16 bit unsigned integer (11 bits used)
void set_lr(const ossimIpt &pt)
void clearMinMaxNullArrays()
Clears out the arrays from a scan for min, max, nulls.
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
This class defines an abstract Handler which all image handlers(loaders) should derive from...
virtual ossim_int32 connectMyInputTo(ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
Will try to connect this objects input to the passed in object.
virtual const void * getBuf() const
virtual void setErrorStatus() const
void setScanForMinMax(bool flag)
Turn on/off scan for min max flag.
void setSourceLevel(ossim_uint32 level)
Sets the input source resolution to decimate from.
virtual void slaveProcessTiles()
This implementation does nothing.
#define OSSIM_DEFAULT_TILE_HEIGHT
virtual ~ossimOverviewSequencer()
virtual destructor
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
void getInputTileRectangle(ossimIrect &inputRect) const
Gets the image rectangle for the input tile for theCurrentTileNumber.
ossimHistogramMode m_histoMode
void setHistogramMode(ossimHistogramMode mode)
Sets the histogram accumulation mode.
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
ossimHistogramMode getHistogramMode() const
Gets the histogram accumulation mode.
bool writeOmdFile(const std::string &file)
Writes an ossim metadata(omd) file with min, max, null values.
void setBitMaskObjects(ossimBitMaskWriter *mask_writer, ossimMaskFilter *mask_filter)
Enabled the generation of an alpha (bit) mask such that any full or partial null pixels will be maske...
virtual ossim_uint32 getNumberOfInputBands() const =0
void create(const ossimImageSource *input)
ossimFilename getFilenameWithThisExtension(const ossimString &ext, bool set_e0_prefix=false) const
Returns the image file with extension set using supplentary directory for dirname if set...
static ossimMpi * instance()
bool getScanForMinMaxNull() const
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
void getOutputTileRectangle(ossimIrect &outputRect) const
Gets the image rectangle for the output tile for theCurrentTileNumber.
unsigned char ossim_uint8
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
void setResampleType(ossimFilterResampler::ossimFilterResamplerType resampleType)
Sets the resampling type.
virtual void initialize()
This must be called.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)
16 bit unsigned integer (12 bits used)