18 #define PROPNAME_KERNELSIZE "KernelSize" 19 #define PROPNAME_KERNEL "Kernel" 20 #define PROPNAME_ISHZ "Horizontal" 21 #define PROPNAME_CENTEROFFSET "CenterOffset" 22 #define PROPNAME_STRICTNODATA "StrictNoData" 29 theStrictNoData(
true),
179 <<
"ossimConvolutionFilter1D::getTile WARNING:\n" 181 <<
" Not supported by ossimConvolutionFilter1D" << endl;
211 for(
ossim_uint32 band = 0; band < numberOfBands; ++band)
213 T* inputBuf =
static_cast<T*
>(inputData->
getBuf(band));
214 T* outputBuf =
static_cast<T*
>(outputData->
getBuf(band));
217 T nullPix =
static_cast<T
>(inputData->
getNullPix(band));
220 if(inputBuf&&outputBuf)
227 if (inputBuf[iCo] != nullPix)
231 for(k=0;k<klength;++k)
248 else if(sum < minPix)
254 *outputBuf =
static_cast<T
>(sum);
258 *outputBuf = oNullPix;
261 *outputBuf = oNullPix;
295 for(
ossim_uint32 band = 0; band < numberOfBands; ++band)
297 T* inputBuf =
static_cast<T*
>(inputData->
getBuf(band));
298 T* outputBuf =
static_cast<T*
>(outputData->
getBuf(band));
302 if(inputBuf&&outputBuf)
310 for(k=0;k<klength;++k)
320 else if(sum < minPix)
326 *outputBuf =
static_cast<T
>(sum);
368 if(!property)
return;
427 property->resize(1,(
int)
theKernel.size());
432 property->setCacheRefreshBit();
436 property->setCacheRefreshBit();
440 property->setCacheRefreshBit();
445 property->setCacheRefreshBit();
450 property->setCacheRefreshBit();
467 const char* prefix)
const 471 static_cast<ossim_uint32>(
theKernel.size()),
531 cerr<<
"ossimConvolutionFilter1D : warning no "<<
PROPNAME_ISHZ<<
" in state"<<endl;
548 const char* v = kwl.
find(newPrefix.
c_str(),
554 cerr<<
"ossimConvolutionFilter1D : warning no value for "<<newPrefix<<
" in state"<<endl;
632 tempMin += (k<0.0) ? k*inputMax : k*inputMin;
633 tempMax += (k>0.0) ? k*inputMax : k*inputMin;
16 bit unsigned integer (15 bits used)
virtual ossim_uint32 getWidth() const
virtual bool isSourceEnabled() const
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
void clearNullMinMax()
Clears data members theNullPixValue, theMinPixValue, and theMaxPixValue.
bool theStrictNoData
isHorizontal convolution?
virtual void setProperty(ossimRefPtr< ossimProperty > property)
virtual ossim_uint32 getNumberOfBands() const
virtual void setImageRectangle(const ossimIrect &rect)
int getNumberOfCols() const
Represents serializable keyword/value map.
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
const char * find(const char *key) const
void allocate()
Allocates theTile.
static ossimString toString(bool aValue)
Numeric to string methods.
virtual void setProperty(ossimRefPtr< ossimProperty > property)
std::vector< ossim_float64 > theKernel
const ossimIpt & ul() const
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ossim_uint32 getHeight() const
16 bit unsigned integer (14 bits used)
ossim_uint32 toUInt32() const
16 bit unsigned integer (13 bits used)
std::vector< double > theNullPixValue
strictly no NODATA values used
#define PROPNAME_KERNELSIZE
virtual void setKernel(const std::vector< ossim_float64 > &aKernel)
virtual void initialize()
Initialize the data buffer.
virtual ~ossimConvolutionFilter1D()
virtual void setStrictNoData(bool aStrict)
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &tileRect, ossim_uint32 resLevel=0)
virtual void initialize()
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)
std::vector< double > theMaxPixValue
OSSIM_DLL double defaultMin(ossimScalarType scalarType)
static ossimImageDataFactory * instance()
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
ossim_int32 theCenterOffset
offset of center point in the Kernel
virtual ossimDataObjectStatus validate() 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 void getPropertyNames(std::vector< ossimString > &propertyNames) const
OSSIM_DLL double defaultNull(ossimScalarType scalarType)
ossimImageSource * theInputConnection
unsigned int ossim_uint32
virtual const ossim_float64 * getNullPix() const
32 bit normalized floating point
void computeNullMinMax()
Computes null, min, and max considering input connection and theKernel.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
const ossimIpt & lr() const
virtual ossim_uint32 asUInt32() const
class for vertical or horizontal convolution
std::vector< double > theMinPixValue
virtual ossimRefPtr< ossimImageData > create(ossimSource *owner, ossimScalarType scalar, ossim_uint32 bands=1) const
virtual ossim_sint32 asInt32() const
void convolvePartial(T, ossimRefPtr< ossimImageData > inputData, ossimRefPtr< ossimImageData > outputData)
#define PROPNAME_STRICTNODATA
virtual ossimScalarType getScalarType() const
virtual void makeBlank()
Initializes data to null pixel values.
ossimRefPtr< ossimImageData > theTile
64 bit normalized floating point
16 bit unsigned integer (11 bits used)
virtual void setIsHorizontal(bool aIsHz)
OSSIM_DLL double defaultMax(ossimScalarType scalarType)
void convolveFull(T, ossimRefPtr< ossimImageData > inputData, ossimRefPtr< ossimImageData > outputData)
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
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.
ossimConvolutionFilter1D(ossimObject *owner=NULL)
own class methods
virtual const void * getBuf() const
RTTI_DEF1(ossimConvolutionFilter1D, "ossimConvolutionFilter1D", ossimImageSourceFilter)
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
#define PROPNAME_CENTEROFFSET
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
virtual void setCenterOffset(ossim_int32 aCenterOffset)
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)
const ossimString & getName() const
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
16 bit unsigned integer (12 bits used)