OTB  9.0.0
Orfeo Toolbox
otbSparseWvltToAngleMapperListFilter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbSparseWvltToAngleMapperListFilter_h
22 #define otbSparseWvltToAngleMapperListFilter_h
23 
24 #include "otbMath.h"
25 #include "otbImageList.h"
26 
27 #include "itkProcessObject.h"
28 #include "itkDataObjectDecorator.h"
29 #include "itkImageRegionConstIterator.h"
30 
31 namespace otb
32 {
33 
34 
46 template <class TInputImageList, class TOutputSampleList, unsigned int VNbInputImages>
47 class SparseWvltToAngleMapperListFilter : public ITK_EXPORT itk::ProcessObject
48 {
49 public:
52  typedef itk::ProcessObject Superclass;
53  typedef itk::SmartPointer<Self> Pointer;
54  typedef itk::SmartPointer<const Self> ConstPointer;
55 
57  itkNewMacro(Self);
58 
60  itkTypeMacro(SparseWvltToAngleMapperListFilter, ProcessObject);
61 
63  itkStaticConstMacro(NumberOfInputImages, unsigned int, VNbInputImages);
64 
66  typedef TInputImageList InputImageListType;
67  typedef typename InputImageListType::Pointer InputImageListPointerType;
68  typedef typename InputImageListType::ConstIterator InputImageListConstIteratorType;
69  typedef typename InputImageListType::ImageType InputImageType;
70  typedef typename InputImageType::Pointer InputImagePointerType;
71  typedef typename InputImageType::RegionType InputImageRegionType;
72  typedef typename InputImageType::PixelType InputImagePixelType;
73  typedef typename InputImageType::SizeType SizeType;
74  typedef typename InputImageType::ValueType ValueType;
75 
77  typedef TOutputSampleList OutputSampleListType;
78  typedef typename OutputSampleListType::Pointer OutputSampleListPointer;
79  typedef typename OutputSampleListType::ConstPointer OutputSampleListConstPointer;
80  typedef typename OutputSampleListType::MeasurementVectorType OutputMeasurementVectorType;
81  typedef typename OutputMeasurementVectorType::ValueType OutputValueType;
82 
84  typedef itk::ImageRegionConstIterator<InputImageType> ImageConstIteratorType;
85  typedef std::vector<ImageConstIteratorType> ImageConstIteratorVectorType;
86  typedef std::vector<InputImageListConstIteratorType> InputImageListConstIteratorVectorType;
87 
88  void SetInput(unsigned int i, const InputImageListType*);
89  using Superclass::SetInput;
90 
91  const InputImageListType* GetInput(unsigned int i) const;
92 
95  typedef itk::DataObject::Pointer DataObjectPointer;
96  typedef itk::DataObjectDecorator<OutputSampleListType> OutputSampleListObjectType;
97  typedef itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
98 
101 
104 
106  itkGetMacro(ThresholdValue, ValueType);
107  itkSetMacro(ThresholdValue, ValueType);
109 
110 protected:
113  {
114  }
115 
118  using Superclass::MakeOutput;
119 
120  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
121 
123  void GenerateData() override;
124 
125  /* Internal functions */
126  virtual bool IsToGenerate(const ImageConstIteratorVectorType&) const;
129 
130 private:
131  SparseWvltToAngleMapperListFilter(const Self&); // not implemented
132  void operator=(const Self&);
133 
135 
136 }; // end of class
137 
138 } // end of namespace otb
139 
140 #ifndef OTB_MANUAL_INSTANTIATION
142 #endif
143 
144 #endif
otbImageList.h
otb::SparseWvltToAngleMapperListFilter
This class select N-uple join-wvlt coeff for sparse unmixing.
Definition: otbSparseWvltToAngleMapperListFilter.h:47
otb::SparseWvltToAngleMapperListFilter::GetOutputSampleList
OutputSampleListType * GetOutputSampleList()
Definition: otbSparseWvltToAngleMapperListFilter.hxx:73
otb::SparseWvltToAngleMapperListFilter::InputImageListConstIteratorVectorType
std::vector< InputImageListConstIteratorType > InputImageListConstIteratorVectorType
Definition: otbSparseWvltToAngleMapperListFilter.h:86
otb::SparseWvltToAngleMapperListFilter::ValueType
InputImageType::ValueType ValueType
Definition: otbSparseWvltToAngleMapperListFilter.h:74
otb::SparseWvltToAngleMapperListFilter::GenerateData
void GenerateData() override
Definition: otbSparseWvltToAngleMapperListFilter.hxx:94
otb::SparseWvltToAngleMapperListFilter::GetOutput
OutputSampleListObjectType * GetOutput()
Definition: otbSparseWvltToAngleMapperListFilter.hxx:81
otb::SparseWvltToAngleMapperListFilter::DataObjectPointerArraySizeType
itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
Definition: otbSparseWvltToAngleMapperListFilter.h:97
otb::SparseWvltToAngleMapperListFilter::InputImageRegionType
InputImageType::RegionType InputImageRegionType
Definition: otbSparseWvltToAngleMapperListFilter.h:71
otb::SparseWvltToAngleMapperListFilter::FromEuclideanToSphericalSpace
virtual OutputMeasurementVectorType FromEuclideanToSphericalSpace(const ImageConstIteratorVectorType &) const
Definition: otbSparseWvltToAngleMapperListFilter.hxx:163
otb::SparseWvltToAngleMapperListFilter::OutputValueType
OutputMeasurementVectorType::ValueType OutputValueType
Definition: otbSparseWvltToAngleMapperListFilter.h:81
otb::SparseWvltToAngleMapperListFilter::OutputSampleListObjectType
itk::DataObjectDecorator< OutputSampleListType > OutputSampleListObjectType
Definition: otbSparseWvltToAngleMapperListFilter.h:96
otbMath.h
otb::SparseWvltToAngleMapperListFilter::InputImageListPointerType
InputImageListType::Pointer InputImageListPointerType
Definition: otbSparseWvltToAngleMapperListFilter.h:67
otb::SparseWvltToAngleMapperListFilter::Self
SparseWvltToAngleMapperListFilter Self
Definition: otbSparseWvltToAngleMapperListFilter.h:51
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::SparseWvltToAngleMapperListFilter::DataObjectPointer
itk::DataObject::Pointer DataObjectPointer
Definition: otbSparseWvltToAngleMapperListFilter.h:95
otb::SparseWvltToAngleMapperListFilter::GetInput
const InputImageListType * GetInput(unsigned int i) const
Definition: otbSparseWvltToAngleMapperListFilter.hxx:51
otb::SparseWvltToAngleMapperListFilter::MakeOutput
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override
Definition: otbSparseWvltToAngleMapperListFilter.hxx:63
otb::SparseWvltToAngleMapperListFilter::OutputSampleListConstPointer
OutputSampleListType::ConstPointer OutputSampleListConstPointer
Definition: otbSparseWvltToAngleMapperListFilter.h:79
otb::SparseWvltToAngleMapperListFilter::PrintSelf
void PrintSelf(std::ostream &os, itk::Indent indent) const override
Definition: otbSparseWvltToAngleMapperListFilter.hxx:87
otb::SparseWvltToAngleMapperListFilter::IsToGenerate
virtual bool IsToGenerate(const ImageConstIteratorVectorType &) const
Definition: otbSparseWvltToAngleMapperListFilter.hxx:143
otb::SparseWvltToAngleMapperListFilter::OutputSampleListType
TOutputSampleList OutputSampleListType
Definition: otbSparseWvltToAngleMapperListFilter.h:77
otb::SparseWvltToAngleMapperListFilter::m_ThresholdValue
ValueType m_ThresholdValue
Definition: otbSparseWvltToAngleMapperListFilter.h:134
otb::SparseWvltToAngleMapperListFilter::InputImagePixelType
InputImageType::PixelType InputImagePixelType
Definition: otbSparseWvltToAngleMapperListFilter.h:72
otb::SparseWvltToAngleMapperListFilter::operator=
void operator=(const Self &)
otb::SparseWvltToAngleMapperListFilter::OutputSampleListPointer
OutputSampleListType::Pointer OutputSampleListPointer
Definition: otbSparseWvltToAngleMapperListFilter.h:78
otb::SparseWvltToAngleMapperListFilter::SparseWvltToAngleMapperListFilter
SparseWvltToAngleMapperListFilter()
Definition: otbSparseWvltToAngleMapperListFilter.hxx:33
otb::SparseWvltToAngleMapperListFilter::OutputMeasurementVectorType
OutputSampleListType::MeasurementVectorType OutputMeasurementVectorType
Definition: otbSparseWvltToAngleMapperListFilter.h:80
otb::SparseWvltToAngleMapperListFilter::Superclass
itk::ProcessObject Superclass
Definition: otbSparseWvltToAngleMapperListFilter.h:52
otb::SparseWvltToAngleMapperListFilter::~SparseWvltToAngleMapperListFilter
~SparseWvltToAngleMapperListFilter() override
Definition: otbSparseWvltToAngleMapperListFilter.h:112
otb::SparseWvltToAngleMapperListFilter::InputImagePointerType
InputImageType::Pointer InputImagePointerType
Definition: otbSparseWvltToAngleMapperListFilter.h:70
otb::SparseWvltToAngleMapperListFilter::InputImageListType
TInputImageList InputImageListType
Definition: otbSparseWvltToAngleMapperListFilter.h:66
otb::SparseWvltToAngleMapperListFilter::SetInput
void SetInput(unsigned int i, const InputImageListType *)
Definition: otbSparseWvltToAngleMapperListFilter.hxx:45
otb::SparseWvltToAngleMapperListFilter::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbSparseWvltToAngleMapperListFilter.h:53
otb::SparseWvltToAngleMapperListFilter::ImageConstIteratorType
itk::ImageRegionConstIterator< InputImageType > ImageConstIteratorType
Definition: otbSparseWvltToAngleMapperListFilter.h:84
otbSparseWvltToAngleMapperListFilter.hxx
otb::SparseWvltToAngleMapperListFilter::ImageConstIteratorVectorType
std::vector< ImageConstIteratorType > ImageConstIteratorVectorType
Definition: otbSparseWvltToAngleMapperListFilter.h:85
otb::SparseWvltToAngleMapperListFilter::NumberOfInputImages
static const unsigned int NumberOfInputImages
Definition: otbSparseWvltToAngleMapperListFilter.h:63
otb::SparseWvltToAngleMapperListFilter::InputImageListConstIteratorType
InputImageListType::ConstIterator InputImageListConstIteratorType
Definition: otbSparseWvltToAngleMapperListFilter.h:68
otb::SparseWvltToAngleMapperListFilter::SizeType
InputImageType::SizeType SizeType
Definition: otbSparseWvltToAngleMapperListFilter.h:73
otb::SparseWvltToAngleMapperListFilter::InputImageType
InputImageListType::ImageType InputImageType
Definition: otbSparseWvltToAngleMapperListFilter.h:69
otb::SparseWvltToAngleMapperListFilter::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbSparseWvltToAngleMapperListFilter.h:54