OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimFilterResampler.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 //
6 // Author: Garrett Potts
7 //
8 // Contributor:
9 // David A. Horner (DAH) http://dave.thehorners.com
10 //
11 //*************************************************************************
12 // $Id: ossimFilterResampler.h 23586 2015-10-19 10:45:22Z gpotts $
13 #ifndef ossimFilterResampler_HEADER
14 #define ossimFilterResampler_HEADER
15 
16 #include <vector>
17 #include <ossim/base/ossimString.h>
18 #include <ossim/base/ossimDpt.h>
19 #include <ossim/base/ossimIrect.h>
23 
25 {
26 public:
28  {
29  ossimFilterResampler_NEAREST_NEIGHBOR = 0,
30  ossimFilterResampler_BOX = 1,
31  ossimFilterResampler_GAUSSIAN = 2,
32  ossimFilterResampler_CUBIC = 3,
33  ossimFilterResampler_HANNING = 4,
34  ossimFilterResampler_HAMMING = 5,
35  ossimFilterResampler_LANCZOS = 6,
36  ossimFilterResampler_MITCHELL = 7,
37  ossimFilterResampler_CATROM = 8,
38  ossimFilterResampler_BLACKMAN = 9,
39  ossimFilterResampler_BLACKMAN_SINC = 10,
40  ossimFilterResampler_BLACKMAN_BESSEL = 11,
41  ossimFilterResampler_QUADRATIC = 12,
42  ossimFilterResampler_TRIANGLE = 13,
43  ossimFilterResampler_BILINEAR = 13,
44  ossimFilterResampler_HERMITE = 14,
45  ossimFilterResampler_BELL = 15,
46  ossimFilterResampler_BSPLINE = 16,
47  ossimFilterResampler_MAGIC = 17
48 
49  };
51  virtual ~ossimFilterResampler();
52 
53  virtual void resample(const ossimRefPtr<ossimImageData>& input,
55  const ossimDpt& ul,
56  const ossimDpt& ur,
57  const ossimDpt& deltaUl,
58  const ossimDpt& deltaUr,
59  const ossimDpt& length);
60 
61  virtual void resample(const ossimRefPtr<ossimImageData>& input,
63  const ossimIrect& outputSubRect,
64  const ossimDpt& ul,
65  const ossimDpt& ur,
66  const ossimDpt& deltaUl,
67  const ossimDpt& deltaUr,
68  const ossimDpt& length);
69 
70  void setFilterType(ossimFilterResamplerType filterType);
71  void setFilterType(ossimFilterResamplerType minifyFilterType,
72  ossimFilterResamplerType magnifyFilterType);
73  void setFilterType(const ossimString& type);
74  void setFilterType(const ossimString& minifyType,
75  const ossimString& magnifyType);
76 
77  void setMinifyFilterType(const ossimString& minifyType);
78  void setMagnifyFilterType(const ossimString& magnifyType);
79  void setMinifyFilterType(ossimFilterResamplerType filterType);
80  void setMagnifyFilterType(ossimFilterResamplerType filterType);
81  ossimString getMinifyFilterTypeAsString()const;
82  ossimString getMagnifyFilterTypeAsString()const;
83  void setScaleFactor(const ossimDpt& scale);
84  void setBlurFactor(ossim_float64 blur);
85 
86  void setBoundingInputRect(const ossimIrect& rect)
87  {
88  theInputRect = rect;
89  }
91  {
92  return theInputRect;
93  }
94 
95  ossim_float64 getBlurFactor()const;
96 
97  const ossimDpt& getScaleFactor()const
98  {
99  return theScaleFactor;
100  }
104  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
105 
109  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
110 
111  virtual void getKernelSupport(double& x,
112  double & y)const;
113 
114  virtual void getFilterTypes(std::vector<ossimString>& filterTypes)const;
115 
116 private:
117  const ossimFilter* getHorizontalFilter()const;
118  const ossimFilter* getVerticalFilter()const;
119 
120  template <class T>
121  void resampleBilinearTile(T dummy,
122  const ossimRefPtr<ossimImageData>& input,
124  const ossimIrect& outputSubRect,
125  const ossimDpt& inputUl,
126  const ossimDpt& inputUr,
127  const ossimDpt& deltaUl,
128  const ossimDpt& deltaUr,
129  const ossimDpt& outLength);
130 
131  void computeTable();
132  ossimString getFilterTypeAsString(ossimFilterResamplerType type)const;
133  ossimFilterResamplerType getFilterType(const ossimString& type)const;
134  ossimFilter* createNewFilter(ossimFilterResamplerType filterType,
135  ossimFilterResamplerType& result);
136 
137 
141 
146 
149 };
150 
151 #endif
ossim_uint32 x
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
ossim_uint32 y
double ossim_float64
void setBoundingInputRect(const ossimIrect &rect)
ossimFilterTable theFilterTable
ossimFilterResamplerType theMagnifyFilterType
ossimIrect getBoundingInputRect() const
const ossimDpt & getScaleFactor() const
ossimFilterResamplerType theMinifyFilterType