OTB  10.0.0
Orfeo Toolbox
otbWaveletGenerator.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2024 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 #include "OTBWaveletExport.h"
30 
31 namespace otb
32 {
33 
34 namespace Wavelet
35 {
36 enum Wavelet
37 {
38  HAAR = 0,
40  DB4 = 1,
42  DB6 = 2,
44  DB8 = 3,
46  DB12 = 4,
48  DB20 = 5,
51  SYMLET8, // 8
53 };
54 }
55 
70 template <Wavelet::Wavelet TMotherWaveletOperator>
71 class ITK_EXPORT WaveletGenerator : public itk::LightObject
72 {
73 public:
76  typedef itk::LightObject Superclass;
77  typedef itk::SmartPointer<Self> Pointer;
78  typedef itk::SmartPointer<const Self> ConstPointer;
79 
81  itkNewMacro(Self);
82 
84  itkTypeMacro(WaveletGenerator, LightObject);
85 
87  typedef std::vector<double> CoefficientVector;
88 
93  const char* GetWaveletName() const;
94 
100 
106 
107 protected:
109  {
110  }
111  ~WaveletGenerator() override
112  {
113  }
114 
115 private:
116  WaveletGenerator(const Self&); // not implemented
117  void operator=(const Self&); // not implemented
118 }; // end of class
119 
120 } // end of namespace otb
121 
122 #endif
Wavelet coefficient definition.
void GetHighPassCoefficientVector(CoefficientVector &coeff) const
const char * GetWaveletName() const
itk::SmartPointer< Self > Pointer
void GetLowPassCoefficientVector(CoefficientVector &coeff) const
WaveletGenerator(const Self &)
std::vector< double > CoefficientVector
void operator=(const Self &)
itk::SmartPointer< const Self > ConstPointer
itk::LightObject Superclass
@ TotalNumberOfDefinedMotherWavelets
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.