27 static const ossim_uint32 NUMBER_OF_ADJUSTABLE_PARAMETERS = 2;
30 :theLowPassKernelWidth(1.5),
31 theHighPassKernelWidth(3)
109 if(!normColorData.
valid())
134 normColorOutputData->
loadTile(normColorData.
get());
155 for(idx = 0; idx < bands.size(); ++idx)
161 double normMinPix = 0.0;
162 for(
y = 0;
y < h; ++
y)
164 for(
x = 0;
x < w; ++
x)
166 for(idx = 0; idx < bandsSize; ++idx)
168 if((*bands[idx] != 0.0)&&
172 *bands[idx] = ((*bands[idx])*(*panHigh))/
174 if(*bands[idx] > 1.0) *bands[idx] = 1.0;
175 if(*bands[idx] < normMinPix) *bands[idx] = normMinPix;
232 if(inputColorSource&&inputPanSource)
242 double scaleChange = gsdColor.
length()/gsdIntensity.
length();
243 if(scaleChange < 1.0) scaleChange = 1.0;
269 double multiplier = gain/(kernelW2);
276 high[cy][cx] = multiplier* ( (kernelW2-1)+kernelW2/gain);
303 "Low pass kernel width");
323 if(name==
"low_pass_kernel_width")
329 else if(name==
"high_pass_gain")
335 else if(name==
"auto_adjust_scales")
347 if(name ==
"low_pass_kernel_width")
356 else if(name ==
"high_pass_gain")
365 else if(name==
"auto_adjust_scales")
378 propertyNames.push_back(
"low_pass_kernel_width");
379 propertyNames.push_back(
"high_pass_gain");
380 propertyNames.push_back(
"auto_adjust_scales");
384 const char* prefix)
const 389 "auto_adjust_scales",
404 if(!autoAdjustScales.
empty())
virtual void initialize()
virtual void valueToString(ossimString &valueResult) const =0
virtual ossim_uint32 getWidth() const
void setParameterDescription(ossim_uint32 idx, const ossimString &descrption)
double computeParameterOffset(ossim_uint32 idx) const
bool saveAdjustments(ossimKeywordlist &kwl, const ossimString &prefix=ossimString("")) const
Save all adjustments to the KWL file.
virtual ossim_uint32 getNumberOfBands() const
ossimRefPtr< ossimImageData > getNormTile(const ossimIrect &rect, ossim_uint32 resLevel)
virtual void setImageRectangle(const ossimIrect &rect)
Represents serializable keyword/value map.
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 char * find(const char *key) const
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void copyTileBandToNormalizedBuffer(ossim_uint32 band, ossim_float64 *buf) const
Will copy this tiles specified band number to the normalized buffer.
virtual void adjustableParametersChanged()
ossim_uint32 theHighPassKernelWidth
ossim_uint32 height() const
static ossimString toString(bool aValue)
Numeric to string methods.
ossimRefPtr< ossimImageData > theTile
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &tileRect, ossim_uint32 resLevel=0)
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ossim_uint32 getHeight() const
ossimImageSource * theInputConnection
virtual ossimObject * getObject()
For RTTI support.
ossimRefPtr< ossimImageData > getTile(const ossimIrect &tileRect, ossim_uint32 resLevel=0)
This class imlements the fusion algorithm from the paper:
virtual void initialize()
Initialize the data buffer.
virtual void setProperty(ossimRefPtr< ossimProperty > property)
virtual ossimObject * dup() const
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual void loadTile(const void *src, const ossimIrect &src_rect, ossimInterleaveType il_type)
virtual void setProperty(ossimRefPtr< ossimProperty > property)
NEWMAT::Matrix theHighPassMatrix
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual ossimDataObjectStatus validate() const
void setParameterOffset(ossim_uint32 idx, ossim_float64 value, bool notify=false)
RTTI_DEF2(ossimSFIMFusion, "ossimSFIMFusion", ossimFusionCombiner, ossimAdjustableParameterInterface)
class for symmetric Gaussian filtering implemented as two separable horizontal/vertical gaussian filt...
virtual ~ossimSFIMFusion()
ossimImageSource * theIntensityConnection
virtual void setConvolution(const double *kernel, int nrows, int ncols, bool doWeightedAverage=false)
bool toBool() const
String to numeric methods.
unsigned int ossim_uint32
ossimDpt getMetersPerPixel() const
Returns the GSD associated with this image in the active projection.
32 bit normalized floating point
ossimRefPtr< ossimImageData > theNormLowPassTile
bool loadAdjustments(const ossimKeywordlist &kwl, const ossimString &prefix=ossimString(""))
virtual void copyNormalizedBufferToTile(ossim_float64 *buf)
Copies buf passed in to tile.
void setGaussStd(const ossim_float64 &v)
virtual ossim_int32 connectMyInputTo(ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
Will try to connect this objects input to the passed in object.
ossim_float64 theLowPassKernelWidth
ossim_uint32 width() const
ossimRefPtr< ossimImageData > theNormHighPassTile
virtual ossimRefPtr< ossimImageGeometry > getImageGeometry()
Returns the image geometry object associated with this tile source or NULL if not defined...
virtual const ossim_float64 * getMinPix() const
virtual void makeBlank()
Initializes data to null pixel values.
T * getObjectAs(ossim_uint32 idx=0)
virtual void setAdjustableParameter(ossim_uint32 idx, double value, bool notify=false)
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &rect, ossim_uint32 resLevel=0)
virtual const void * getBuf() const
virtual void initialize()
void resizeAdjustableParameterArray(ossim_uint32 numberOfParameters)
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
ossimRefPtr< ossimConvolutionSource > theHighPassFilter
virtual void accept(ossimVisitor &visitor)
We will add a visitor interface for all connectable objects.
virtual void initialize()
inherited methods
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=NULL)
Method to the load (recreate) the state of an object from a keyword list.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=NULL) const
Method to save the state of an object to a keyword list.
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual void disconnectAllInputs()
Will disconnect all of the input objects.
void setParameterCenter(ossim_uint32 idx, double center, bool notify=false)
ossimRefPtr< ossimImageGaussianFilter > theLowPassFilter
virtual void initAdjustableParameters()
double getParameterCenter(ossim_uint32 idx) const
void setParameterSigma(ossim_uint32 idx, double value, bool notify=false)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
void setCacheRefreshBit()
double getParameterSigma(ossim_uint32 idx) const
virtual void initialize()
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)