OTB  6.7.0
Orfeo Toolbox
otbWaveletGenerator.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
3  * Copyright (C) 2007-2012 Institut Mines Telecom / Telecom Bretagne
4  *
5  * This file is part of Orfeo Toolbox
6  *
7  * https://www.orfeo-toolbox.org/
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21 
22 
23 #ifndef otbWaveletGenerator_h
24 #define otbWaveletGenerator_h
25 
26 #include <vector>
27 #include "itkLightObject.h"
28 #include "itkObjectFactory.h"
29 
30 namespace otb
31 {
32 
33 namespace Wavelet
34 {
35 enum Wavelet {
36  HAAR = 0,
37  DAUBECHIES4 = 1, DB4 = 1,
38  DAUBECHIES6 = 2, DB6 = 2,
39  DAUBECHIES8 = 3, DB8 = 3,
40  DAUBECHIES12 = 4, DB12 = 4,
41  DAUBECHIES20 = 5, DB20 = 5,
44  SYMLET8, // 8
46  };
47 }
48 
63 template <Wavelet::Wavelet TMotherWaveletOperator>
64 class ITK_EXPORT WaveletGenerator
65  : public itk::LightObject
66 {
67 public:
73 
75  itkNewMacro(Self);
76 
78  itkTypeMacro(WaveletGenerator, LightObject);
79 
81  typedef std::vector<double> CoefficientVector;
82 
87  const char * GetWaveletName() const;
88 
93  void GetLowPassCoefficientVector(CoefficientVector& coeff) const;
94 
99  void GetHighPassCoefficientVector(CoefficientVector& coeff) const;
100 
101 protected:
103  ~WaveletGenerator() override {}
104 
105 private:
106  WaveletGenerator(const Self &); // not implemented
107  void operator =(const Self&); // not implemented
108 }; // end of class
109 
110 } // end of namespace otb
111 
112 #endif
itk::SmartPointer< Self > Pointer
Wavelet coefficient definition.
std::vector< double > CoefficientVector
itk::LightObject Superclass
itk::SmartPointer< const Self > ConstPointer