OTB  9.0.0
Orfeo Toolbox
otbWaveletGenerator.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 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 {
37  HAAR = 0,
39  DB4 = 1,
41  DB6 = 2,
43  DB8 = 3,
45  DB12 = 4,
47  DB20 = 5,
50  SYMLET8, // 8
52 };
53 }
54 
69 template <Wavelet::Wavelet TMotherWaveletOperator>
70 class ITK_EXPORT WaveletGenerator : public itk::LightObject
71 {
72 public:
75  typedef itk::LightObject Superclass;
76  typedef itk::SmartPointer<Self> Pointer;
77  typedef itk::SmartPointer<const Self> ConstPointer;
78 
80  itkNewMacro(Self);
81 
83  itkTypeMacro(WaveletGenerator, LightObject);
84 
86  typedef std::vector<double> CoefficientVector;
87 
92  const char* GetWaveletName() const;
93 
98  void GetLowPassCoefficientVector(CoefficientVector& coeff) const;
99 
104  void GetHighPassCoefficientVector(CoefficientVector& coeff) const;
105 
106 protected:
108  {
109  }
110  ~WaveletGenerator() override
111  {
112  }
113 
114 private:
115  WaveletGenerator(const Self&); // not implemented
116  void operator=(const Self&); // not implemented
117 }; // end of class
118 
119 } // end of namespace otb
120 
121 #endif
otb::WaveletGenerator::CoefficientVector
std::vector< double > CoefficientVector
Definition: otbWaveletGenerator.h:83
otb::WaveletGenerator::Self
WaveletGenerator Self
Definition: otbWaveletGenerator.h:74
otb::Wavelet::DB8
@ DB8
Definition: otbWaveletGenerator.h:43
otb::WaveletGenerator::Superclass
itk::LightObject Superclass
Definition: otbWaveletGenerator.h:75
otb::WaveletGenerator::~WaveletGenerator
~WaveletGenerator() override
Definition: otbWaveletGenerator.h:110
otb::Wavelet::DAUBECHIES4
@ DAUBECHIES4
Definition: otbWaveletGenerator.h:38
otb::Wavelet::DB4
@ DB4
Definition: otbWaveletGenerator.h:39
otb::Wavelet::DAUBECHIES12
@ DAUBECHIES12
Definition: otbWaveletGenerator.h:44
otb::WaveletGenerator::WaveletGenerator
WaveletGenerator()
Definition: otbWaveletGenerator.h:107
otb::WaveletGenerator
Wavelet coefficient definition.
Definition: otbWaveletGenerator.h:70
otb::Wavelet::Wavelet
Wavelet
Definition: otbWaveletGenerator.h:35
otb::Wavelet::SYMLET8
@ SYMLET8
Definition: otbWaveletGenerator.h:50
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::Wavelet::DAUBECHIES8
@ DAUBECHIES8
Definition: otbWaveletGenerator.h:42
otb::Wavelet::DAUBECHIES6
@ DAUBECHIES6
Definition: otbWaveletGenerator.h:40
otb::Wavelet::SPLINE_BIORTHOGONAL_2_4
@ SPLINE_BIORTHOGONAL_2_4
Definition: otbWaveletGenerator.h:48
otb::Wavelet::DB6
@ DB6
Definition: otbWaveletGenerator.h:41
otb::Wavelet::TotalNumberOfDefinedMotherWavelets
@ TotalNumberOfDefinedMotherWavelets
Definition: otbWaveletGenerator.h:51
otb::WaveletGenerator::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbWaveletGenerator.h:77
otb::WaveletGenerator::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbWaveletGenerator.h:76
otb::Wavelet::DB20
@ DB20
Definition: otbWaveletGenerator.h:47
otb::Wavelet::SPLINE_BIORTHOGONAL_4_4
@ SPLINE_BIORTHOGONAL_4_4
Definition: otbWaveletGenerator.h:49
otb::Wavelet::DAUBECHIES20
@ DAUBECHIES20
Definition: otbWaveletGenerator.h:46
otb::Wavelet::HAAR
@ HAAR
Definition: otbWaveletGenerator.h:37
otb::Wavelet::DB12
@ DB12
Definition: otbWaveletGenerator.h:45