22 static const char* KEEP_QUANTIZED_VALUE_FLAG_KW =
"keep_quantized_value_flag";
25 "ossimNBandToIndexFilter",
32 theKeepQuantizedValueFlag(false)
62 for(idx = 0; idx < bands; ++idx)
214 template <
class T1,
class T2>
235 std::vector<ossimNBandLutDataObject::LUT_ENTRY_TYPE> bandValuesTemplate(numberOfBands);
239 std::fill(bandValuesTemplate.begin(), bandValuesTemplate.end(), 0);
242 if(!numberOfBands)
return theTile;
243 std::vector<T1*> band(numberOfBands);
244 std::vector<T2*> outBand(numberOfBands);
249 for(idx = 0; idx < (
ossim_int32)numberOfBands; ++idx)
251 band[idx] = (T1*)inputTile->
getBuf(idx);
262 for(idx2 = 0; idx2 < numberOfBands; ++idx2)
264 bandValues[idx2] = *band[idx2];
275 *outBand[0] = (T2)idx;
280 for(idx2 = 0; idx2 < numberOfBands; ++idx2)
284 *outBand[idx2] = (T2)(*
theLut)[idx][idx2];
297 for(idx2 = 0; idx2 < numberOfBands; ++idx2)
299 bandValues[idx2] = *band[idx2];
303 if(!inputTile->
isNull(offset))
315 *outBand[0] = (T2)idx;
321 for(idx2 = 0; idx2 < numberOfBands; ++idx2)
327 *outBand[idx2] = (T2)(*
theLut)[idx][idx2];
350 const char* prefix)
const 353 newPrefix = newPrefix +
"lut.";
361 KEEP_QUANTIZED_VALUE_FLAG_KW,
371 newPrefix = newPrefix +
"lut.";
379 const char* flag = kwl.
find(prefix, KEEP_QUANTIZED_VALUE_FLAG_KW);
437 if(numberOfEntries < 257)
441 else if(numberOfEntries < 65537)
529 else if(property->
getName() == KEEP_QUANTIZED_VALUE_FLAG_KW)
545 property->setCacheRefreshBit();
549 else if(name == KEEP_QUANTIZED_VALUE_FLAG_KW)
552 property->setCacheRefreshBit();
564 propertyNames.push_back(KEEP_QUANTIZED_VALUE_FLAG_KW);
void setLut(ossimNBandLutDataObject &lut)
virtual void valueToString(ossimString &valueResult) const =0
virtual ossim_uint32 getWidth() const
virtual bool isSourceEnabled() const
ossim_int32 LUT_ENTRY_TYPE
ossimRefPtr< ossimNBandLutDataObject > theLut
virtual void setProperty(ossimRefPtr< ossimProperty > property)
bool theKeepQuantizedValueFlag
virtual ossim_uint32 getNumberOfBands() const
virtual void setImageRectangle(const ossimIrect &rect)
ossim_uint32 getNumberOfBands() const
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Represents serializable keyword/value map.
bool addFile(const char *file)
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
const char * find(const char *key) const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual ~ossimNBandToIndexFilter()
virtual void disableSource()
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ossim_uint32 getHeight() const
void getMinMax(ossim_uint32 band, LUT_ENTRY_TYPE &minValue, LUT_ENTRY_TYPE &maxValue)
Will return the min max value for a given band.
ossimFilename theLutFilename
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
unsigned short ossim_uint16
virtual ossimRefPtr< ossimImageData > convertInputTile(ossimImageData *inputTile)
virtual void initialize()
Initialize the data buffer.
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void initialize()
bool isNull(ossim_uint32 offset) const
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossimRefPtr< ossimImageData > convertInputTileToOutputTemplate(T1 inputDummy, T2 outputDummy, ossimImageData *inputTile)
static ossimImageDataFactory * instance()
virtual ossimDataObjectStatus validate() const
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
std::vector< ossimNBandLutDataObject::LUT_ENTRY_TYPE > theMinValues
bool toBool() const
String to numeric methods.
ossim_uint32 getNumberOfEntries() const
ossimImageSource * theInputConnection
unsigned int ossim_uint32
ossimRefPtr< ossimImageData > convertOutputTileTemplate(T inputDummy, ossimImageData *inputTile)
virtual bool isSourceEnabled() const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual ossimRefPtr< ossimImageData > create(ossimSource *owner, ossimScalarType scalar, ossim_uint32 bands=1) const
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
Pushes this's names onto the list of property names.
virtual ossimScalarType getScalarType() const
virtual void makeBlank()
Initializes data to null pixel values.
ossimRefPtr< ossimImageData > theTile
std::vector< ossimNBandLutDataObject::LUT_ENTRY_TYPE > theNullValues
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
virtual const void * getBuf() const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &origin, ossim_uint32 resLevel=0)
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
class ossimNBandLutDataObject
ossimNBandToIndexFilter()
virtual void setDataObjectStatus(ossimDataObjectStatus status) const
Full list found in ossimConstants.h.
ossim_uint32 findIndex(ossim_int32 *values) const
This method gives you a way to find an entry index closest to the passed in band values.
ossim_int32 getNullPixelIndex() const
virtual void initialize()
RTTI_DEF1(ossimNBandToIndexFilter, "ossimNBandToIndexFilter", ossimImageSourceFilter)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Loads the state of the object by reading in the keywords listed in the save state.
static const char * FILENAME_KW
std::vector< ossimNBandLutDataObject::LUT_ENTRY_TYPE > theMaxValues
unsigned char ossim_uint8
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
virtual void setProperty(ossimRefPtr< ossimProperty > property)
Will set the property whose name matches the argument "property->getName()".
const ossimString & getName() const
virtual void disableSource()
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)