/usr/include/ossim/imaging/ossimSFIMFusion.h is in libossim-dev 2.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | //*******************************************************************
// Copyright (C) 2005 Garrett Potts
//
// LICENSE: See top level LICENSE.txt
//
// Author: Garrett Potts
//
//*******************************************************************
// $Id: ossimSFIMFusion.h 19827 2011-07-15 19:47:30Z gpotts $
#ifndef ossimSFIMFusion_HEADER
#define ossimSFIMFusion_HEADER
#include <ossim/imaging/ossimFusionCombiner.h>
#include <ossim/imaging/ossimConvolutionSource.h>
#include <ossim/imaging/ossimImageGaussianFilter.h>
#include <ossim/base/ossimAdjustableParameterInterface.h>
/**
* This class imlements the fusion algorithm from the paper:
*
* "Smoothing Filter-based Intesity Modulation: a spectral preserve
* image fusion technique for improving spatial details"
*
* Pulished in INT. J. Remote Sensing, 2000, Vol. 21 NO. 18, 3461-3472
*
* By J. G. LIU
*
*
* Auther: Garrett Potts
* LICENSE: MIT
*/
class OSSIM_DLL ossimSFIMFusion : public ossimFusionCombiner,
public ossimAdjustableParameterInterface
{
public:
ossimSFIMFusion();
virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& rect,
ossim_uint32 resLevel=0);
virtual void initialize();
virtual ossimObject* getBaseObject()
{
return this;
}
virtual const ossimObject* getBaseObject()const
{
return this;
}
virtual void initAdjustableParameters();
virtual void adjustableParametersChanged();
virtual void setProperty(ossimRefPtr<ossimProperty> property);
virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
virtual bool saveState(ossimKeywordlist& kwl,
const char* prefix=0) const;
virtual bool loadState(const ossimKeywordlist& kwl,
const char* prefix=0);
protected:
virtual ~ossimSFIMFusion();
void setFilters();
bool computeRegression(ossim_float64& slopeResult,
const ossimIpt& origin,
ossimRefPtr<ossimImageData> panData,
ossimRefPtr<ossimImageData> colorData,
ossim_uint32 colorBandIdx);
ossim_float64 theLowPassKernelWidth;
ossim_uint32 theHighPassKernelWidth;
// These are low and high pass filters for the single pan band
//
ossimRefPtr<ossimImageGaussianFilter> theLowPassFilter;
ossimRefPtr<ossimConvolutionSource> theHighPassFilter;
ossimRefPtr<ossimImageData> theNormLowPassTile;
ossimRefPtr<ossimImageData> theNormHighPassTile;
ossimRefPtr<ossimImageData> theNormColorData;
NEWMAT::Matrix theHighPassMatrix;
bool theAutoAdjustScales;
TYPE_DATA
};
#endif
|