22 #ifndef otbStreamingStatisticsImageFilter_h
23 #define otbStreamingStatisticsImageFilter_h
26 #include "itkNumericTraits.h"
28 #include "itkSimpleDataObjectDecorator.h"
51 template <
class TInputImage>
72 typedef typename TInputImage::SizeType
SizeType;
76 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
79 itkStaticConstMacro(ImageDimension,
unsigned int, TInputImage::ImageDimension);
82 typedef typename itk::NumericTraits<PixelType>::RealType
RealType;
95 return this->GetMinimumOutput()->Get();
97 PixelObjectType* GetMinimumOutput();
98 const PixelObjectType* GetMinimumOutput()
const;
104 return this->GetMaximumOutput()->Get();
106 PixelObjectType* GetMaximumOutput();
107 const PixelObjectType* GetMaximumOutput()
const;
113 return this->GetMeanOutput()->Get();
115 RealObjectType* GetMeanOutput();
116 const RealObjectType* GetMeanOutput()
const;
122 return this->GetSigmaOutput()->Get();
124 RealObjectType* GetSigmaOutput();
125 const RealObjectType* GetSigmaOutput()
const;
131 return this->GetVarianceOutput()->Get();
133 RealObjectType* GetVarianceOutput();
134 const RealObjectType* GetVarianceOutput()
const;
140 return this->GetSumOutput()->Get();
142 RealObjectType* GetSumOutput();
143 const RealObjectType* GetSumOutput()
const;
148 DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
override;
149 using Superclass::MakeOutput;
154 void AllocateOutputs()
override;
155 void GenerateOutputInformation()
override;
156 void Synthetize(
void)
override;
157 void Reset(
void)
override;
160 itkSetMacro(IgnoreInfiniteValues,
bool);
161 itkGetMacro(IgnoreInfiniteValues,
bool);
163 itkSetMacro(IgnoreUserDefinedValue,
bool);
164 itkGetMacro(IgnoreUserDefinedValue,
bool);
166 itkSetMacro(UserIgnoredValue, RealType);
167 itkGetMacro(UserIgnoredValue, RealType);
174 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
177 void ThreadedGenerateData(
const RegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
181 void operator=(
const Self&) =
delete;
233 template <
class TInputImage>
258 using Superclass::SetInput;
261 this->GetFilter()->SetInput(input);
265 return this->GetFilter()->GetInput();
271 return this->GetFilter()->GetMinimumOutput()->Get();
275 return this->GetFilter()->GetMinimumOutput();
279 return this->GetFilter()->GetMinimumOutput();
285 return this->GetFilter()->GetMaximumOutput()->Get();
289 return this->GetFilter()->GetMaximumOutput();
293 return this->GetFilter()->GetMaximumOutput();
299 return this->GetFilter()->GetMeanOutput()->Get();
303 return this->GetFilter()->GetMeanOutput();
307 return this->GetFilter()->GetMeanOutput();
314 return this->GetSigmaOutput()->Get();
318 return this->GetFilter()->GetSigmaOutput();
322 return this->GetFilter()->GetSigmaOutput();
329 return this->GetFilter()->GetVarianceOutput()->Get();
333 return this->GetFilter()->GetVarianceOutput();
337 return this->GetFilter()->GetVarianceOutput();
344 return this->GetFilter()->GetSumOutput()->Get();
348 return this->GetFilter()->GetSumOutput();
352 return this->GetFilter()->GetSumOutput();
376 void operator=(
const Self&) =
delete;
381 #ifndef OTB_MANUAL_INSTANTIATION