OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimConvolutionFilter1D.h
Go to the documentation of this file.
1 //*******************************************************************
2 // License: MIT
3 //
4 // See LICENSE.txt file in the top level directory for more details.
5 // class ossimImageGaussianFilter : tile source
6 // class ossimConvolutionFilter1D
7 // one dimensional convolution
8 //
9 // efficient for gradients & separable convolution kernels (like gaussian)
10 //*******************************************************************
11 // $Id: ossimConvolutionFilter1D.h 15766 2009-10-20 12:37:09Z gpotts $
12 
13 #ifndef ossimConvolutionFilter1D_HEADER
14 #define ossimConvolutionFilter1D_HEADER
15 
17 
33 {
34 public:
39 
40  virtual inline const std::vector<ossim_float64>& getKernel()const { return theKernel; }
41  virtual void setKernel(const std::vector<ossim_float64>& aKernel);
42 
43  virtual inline bool isHorizontal()const { return theIsHz; }
44  virtual inline void setIsHorizontal(bool aIsHz) { theIsHz = aIsHz; }
45 
46  virtual inline ossim_int32 getCenterOffset()const { return theCenterOffset; }
47  virtual inline void setCenterOffset(ossim_int32 aCenterOffset) { theCenterOffset = aCenterOffset; }
48 
49  virtual inline bool isStrictNoData()const { return theStrictNoData; }
50  virtual inline void setStrictNoData(bool aStrict) { theStrictNoData = aStrict; }
51 
55  virtual ossimString getShortName()const{return ossimString("1D Convolution");}
56  virtual ossimString getLongName()const{return ossimString("Convolves the input image with a one dimensional convolution kernel");}
57 
58  virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect,ossim_uint32 resLevel=0);
59 
60  virtual void initialize();
61 
62  virtual double getNullPixelValue(ossim_uint32 band=0) const;
63  virtual double getMinPixelValue(ossim_uint32 band=0) const;
64  virtual double getMaxPixelValue(ossim_uint32 band=0) const;
65 
66  virtual void setProperty(ossimRefPtr<ossimProperty> property);
67  virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
68  virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
69 
70  virtual bool loadState(const ossimKeywordlist& kwl,const char* prefix = 0);
71  virtual bool saveState(ossimKeywordlist& kwl,const char* prefix = 0)const;
72 
73 protected:
74  virtual ~ossimConvolutionFilter1D();
75 
79  void allocate();
80 
85  void clearNullMinMax();
86 
90  void computeNullMinMax();
91 
96  template<class T>
97  void convolveFull(T,
99  ossimRefPtr<ossimImageData> outputData);
100 
105  template<class T>
106  void convolvePartial(T,
107  ossimRefPtr<ossimImageData> inputData,
108  ossimRefPtr<ossimImageData> outputData);
109 
113  std::vector<ossim_float64> theKernel;
114  bool theIsHz;
116 
117  std::vector<double> theNullPixValue;
118  std::vector<double> theMinPixValue;
119  std::vector<double> theMaxPixValue;
120 
121 TYPE_DATA
122 };
123 
124 #endif /* #ifndef ossimConvolutionFilter1D_HEADER */
bool theStrictNoData
isHorizontal convolution?
virtual void setProperty(ossimRefPtr< ossimProperty > property)
Represents serializable keyword/value map.
virtual ossim_int32 getCenterOffset() const
virtual bool isStrictNoData() const
std::vector< ossim_float64 > theKernel
std::vector< double > theNullPixValue
strictly no NODATA values used
virtual ossimString getLongName() const
virtual void setStrictNoData(bool aStrict)
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
std::vector< double > theMaxPixValue
ossim_int32 theCenterOffset
offset of center point in the Kernel
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
class for vertical or horizontal convolution
std::vector< double > theMinPixValue
ossimRefPtr< ossimImageData > theTile
virtual void setIsHorizontal(bool aIsHz)
virtual const std::vector< ossim_float64 > & getKernel() const
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 bool isHorizontal() const
#define OSSIM_DLL
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void setCenterOffset(ossim_int32 aCenterOffset)
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
int ossim_int32
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)
virtual ossimString getShortName() const
inherited methods