OTB  6.7.0
Orfeo Toolbox
otbScalarImageToHigherOrderTexturesFilter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2019 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 otbScalarImageToHigherOrderTexturesFilter_h
22 #define otbScalarImageToHigherOrderTexturesFilter_h
23 
24 #include "itkImageToImageFilter.h"
26 
27 namespace otb
28 {
72 template<class TInpuImage, class TOutputImage>
74  <TInpuImage, TOutputImage>
75 {
76 public:
82 
84  itkNewMacro(Self);
85 
88 
90  typedef TInpuImage InputImageType;
91  typedef typename InputImageType::Pointer InputImagePointerType;
92  typedef typename InputImageType::PixelType InputPixelType;
93  typedef typename InputImageType::RegionType InputRegionType;
95  typedef TOutputImage OutputImageType;
96  typedef typename OutputImageType::Pointer OutputImagePointerType;
97  typedef typename OutputImageType::RegionType OutputRegionType;
98 
101  typedef typename InputImageType::OffsetType OffsetType;
105 
106 
108  itkSetMacro(Radius, SizeType);
109 
111  itkGetMacro(Radius, SizeType);
112 
115  itkSetConstObjectMacro(Offsets, OffsetVector);
116  itkGetConstObjectMacro(Offsets, OffsetVector);
118 
119  void SetOffset(const OffsetType offset);
120 
122  itkSetMacro(NumberOfBinsPerAxis, unsigned int);
123 
125  itkGetMacro(NumberOfBinsPerAxis, unsigned int);
126 
128  itkSetMacro(InputImageMinimum, InputPixelType);
129 
131  itkGetMacro(InputImageMinimum, InputPixelType);
132 
134  itkSetMacro(InputImageMaximum, InputPixelType);
135 
137  itkGetMacro(InputImageMaximum, InputPixelType);
138 
139  /* Enable/Disable fast calculation */
140  itkGetConstMacro(FastCalculations, bool);
141  itkSetMacro(FastCalculations, bool);
142  itkBooleanMacro(FastCalculations);
143 
145  itkSetMacro(SubsampleFactor, SizeType);
146 
148  itkGetMacro(SubsampleFactor, SizeType);
149 
151  itkSetMacro(SubsampleOffset, OffsetType);
152 
154  itkGetMacro(SubsampleOffset, OffsetType);
155 
158 
161 
164 
167 
170 
173 
176 
179 
182 
185 
186 protected:
189 
192 
194  void GenerateOutputInformation() override;
195 
197  void GenerateInputRequestedRegion() override;
198 
200  void ThreadedGenerateData(const OutputRegionType& outputRegion, itk::ThreadIdType threadId) override;
201 
202 private:
204  void operator =(const Self&) = delete;
205 
207  static OutputRegionType RegionUnion(const OutputRegionType& region1, const OutputRegionType& region2);
208 
211 
214 
216  unsigned int m_NumberOfBinsPerAxis;
217 
220 
223 
226 
229 
232 };
233 } // End namespace otb
234 
235 #ifndef OTB_MANUAL_INSTANTIATION
237 #endif
238 
239 #endif
itk::Size< Monteverdi_DIMENSION > SizeType
Definition: mvdTypes.h:137
This class compute 10 local higher order statistics textures coefficients based on the grey level run...
static OutputRegionType RegionUnion(const OutputRegionType &region1, const OutputRegionType &region2)
itk::VectorContainer< unsigned char, OffsetType > OffsetVector
void ThreadedGenerateData(const OutputRegionType &outputRegion, itk::ThreadIdType threadId) override
unsigned int ThreadIdType
itk::ImageToImageFilter< TInpuImage, TOutputImage > Superclass
itk::Statistics::ScalarImageToRunLengthFeaturesFilter< InputImageType > ScalarImageToRunLengthFeaturesFilterType
TOutputImage OutputImageType