18 static ossimTrace traceDebug(
"ossimImageHistogramSource:debug");
28 theHistogramRecomputeFlag(
true),
29 theMaxNumberOfResLevels(1),
300 <<
"Unsupported scalar type in ossimImageHistogramSource::computeHistogram()" << endl;
338 double tileCount = 0.0;
339 double totalTiles = 0.0;
350 vector<ossimDpt> decimationFactors;
352 if ( !decimationFactors.size() )
355 <<
"ossimImageHistogramSource::computeNormalModeHistogram WARNING:" 356 <<
"\nNo decimation factors from input. returning..." << std::endl;
365 ossimNotify(
ossimNotifyLevel_WARN) <<
"Number Decimations is smaller than the request number of r-levels defaulting to the smallest of the 2 numbers" << endl;
369 for(index = 0; index < resLevelsToCompute; ++index)
381 (index < resLevelsToCompute);
407 resLevelTileCount < resLevelTotalTiles;
451 double tileCount = 0.0;
452 double totalTiles = 0.0;
473 totalTiles = tilesWide*tilesHigh;
489 totalTiles = tilesWide*tilesHigh;
491 for(
y = 0;
y < tilesHigh; ++
y)
493 for(
x = 0;
x < tilesWide; ++
x)
495 ossimIpt ul( origin.
x + (
x*xTileOffset), origin.
y + (
y*yTileOffset) );
542 double tileCount = 0.0;
543 double totalTiles = 0.0;
560 totalTiles = tilesWide*tilesHigh;
562 if(totalTiles > theNumberOfTilesToUseInFastMode)
565 tilesWide = testTiles>tilesWide?tilesWide:testTiles;
566 tilesHigh = testTiles>tilesHigh?tilesHigh:testTiles;
582 totalTiles = tilesWide*tilesHigh;
583 for(
y = 0;
y < tilesHigh; ++
y)
585 for(
x = 0;
x < tilesWide; ++
x)
588 origin.
y + (
y*heightWithExcess));
628 else if(mode ==
"fast")
650 const char* prefix)
const 16 bit unsigned integer (15 bits used)
virtual void setNumberOfInputs(ossim_int32 numberOfInputs)
Will set the number of inputs.
#define OSSIM_DEFAULT_MAX_PIX_UINT16
virtual bool isSourceEnabled() const
virtual bool addListener(ossimListener *listener)
ossimImageHistogramSource(ossimObject *owner=0)
ossim_uint32 theMaxNumberOfResLevels
virtual ossim_uint32 getMaxNumberOfRLevels() const
void setComputationMode(ossimHistogramMode mode)
bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual void disconnect(ossimConnectableObject *object=0)
Will disconnect the object passed in.
void setNumberOfBinsOverride(ossim_int32 numberOfBinsOverride)
bool needsAborting() const
virtual void populateHistogram(ossimRefPtr< ossimMultiBandHistogram > histo)
Represents serializable keyword/value map.
virtual void setToStartOfSequence()
virtual bool canConnectMyInputTo(ossim_int32 myInputIndex, const ossimConnectableObject *object) const
required to be overriden by derived classes
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
#define OSSIM_DEFAULT_MAX_PIX_UCHAR
const char * find(const char *key) const
ossimHistogramMode getComputationMode() const
double nan()
Method to return ieee floating point double precision NAN.
ossim_int64 getNumberOfTiles() const
ossim_uint32 height() const
virtual ossimRefPtr< ossimImageData > getNextTile(ossim_uint32 resLevel=0)
virtual ossim_uint32 getTileHeight() const
Returns the default processing tile height.
virtual void setPercentComplete(double percentComplete)
const ossimIpt & ul() const
ossim_int32 theNumberOfBinsOverride
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual ossimDataObjectStatus getDataObjectStatus() const
16 bit unsigned integer (14 bits used)
ossim_float64 theMinValueOverride
void create(ossim_uint32 numberOfResLevels)
16 bit unsigned integer (13 bits used)
ossim_float64 theMaxValueOverride
ossimHistogramMode theComputationMode
virtual void setProcessStatus(ossimProcessStatus processStatus)
virtual ossimObject * getObject()
ossimIrect getAreaOfInterest() const
virtual ossim_uint32 getTileWidth() const
Returns the default processing tile width.
virtual ossimRefPtr< ossimMultiResLevelHistogram > getHistogram()
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
void getBinInformation(ossim_uint32 &numberOfBins, ossim_float64 &minValue, ossim_float64 &maxValue, ossim_uint32 band) const
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
virtual void propertyEvent(ossimPropertyEvent &event)
ossimRefPtr< ossimMultiResLevelHistogram > theHistogram
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual void computeNormalModeHistogram()
virtual void setAreaOfInterest(const ossimIrect &areaOfInterest)
#define OSSIM_DEFAULT_MAX_PIX_UINT12
#define OSSIM_DEFAULT_MIN_PIX_SINT16
RTTI_DEF3(ossimImageHistogramSource, "ossimImageHistogramSource", ossimHistogramSource, ossimConnectableObjectListener, ossimProcessInterface)
bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
#define OSSIM_DEFAULT_MAX_PIX_UINT15
unsigned int ossim_uint32
32 bit normalized floating point
#define OSSIM_DEFAULT_MAX_PIX_UINT13
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
static ossimString downcase(const ossimString &aString)
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 void initialize()
ossim_uint32 width() const
#define OSSIM_DEFAULT_MAX_PIX_SINT16
virtual void computeFastModeHistogram()
void setMaxValueOverride(ossim_float32 maxValueOverride)
ossimIrect theAreaOfInterest
64 bit normalized floating point
16 bit unsigned integer (11 bits used)
virtual ~ossimImageHistogramSource()
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
#define OSSIM_DEFAULT_MAX_PIX_UINT14
virtual const void * getBuf() const
#define OSSIM_DEFAULT_MAX_PIX_UINT11
virtual ossim_uint32 getNumberOfInputs() const
Returns the number of input objects.
bool theInputListIsFixedFlag
Indicates whether the theInputObjectList is fixed.
void stretchToTileBoundary(const ossimIpt &tileWidthHeight)
virtual void setMaxNumberOfRLevels(ossim_uint32 number)
bool theOutputListIsFixedFlag
Indicates whether the theOutputObjectList is fixed.
void setAreaOfInterest(const ossimIrect &rect)
void setMinValueOverride(ossim_float32 minValueOverride)
ossimRefPtr< ossimMultiBandHistogram > getMultiBandHistogram(ossim_uint32 resLevel) const
void create(const ossimImageSource *input)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
virtual void getDecimationFactors(std::vector< ossimDpt > &decimations) const
Will return an array of all decimations for each resolution level.
virtual void connectInputEvent(ossimConnectionEvent &event)
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)
16 bit unsigned integer (12 bits used)
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.
bool theHistogramRecomputeFlag
virtual bool removeListener(ossimListener *listener)