22 #ifndef otbStreamingMinMaxImageFilter_h
23 #define otbStreamingMinMaxImageFilter_h
27 #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);
92 return this->GetMinimumOutput()->Get();
94 PixelObjectType* GetMinimumOutput();
95 const PixelObjectType* GetMinimumOutput()
const;
101 return this->GetMaximumOutput()->Get();
103 PixelObjectType* GetMaximumOutput();
104 const PixelObjectType* GetMaximumOutput()
const;
110 return this->GetMinimumIndexOutput()->Get();
112 IndexObjectType* GetMinimumIndexOutput();
113 const IndexObjectType* GetMinimumIndexOutput()
const;
119 return this->GetMaximumIndexOutput()->Get();
121 IndexObjectType* GetMaximumIndexOutput();
122 const IndexObjectType* GetMaximumIndexOutput()
const;
128 DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
override;
129 using Superclass::MakeOutput;
134 void AllocateOutputs()
override;
135 void GenerateOutputInformation()
override;
136 void Synthetize(
void)
override;
137 void Reset(
void)
override;
145 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
148 void ThreadedGenerateData(
const RegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
152 void operator=(
const Self&) =
delete;
193 template <
class TInputImage>
216 using Superclass::SetInput;
219 this->GetFilter()->SetInput(input);
223 return this->GetFilter()->GetInput();
229 return this->GetFilter()->GetMinimumOutput()->Get();
233 return this->GetFilter()->GetMinimumOutput();
237 return this->GetFilter()->GetMinimumOutput();
243 return this->GetFilter()->GetMaximumOutput()->Get();
247 return this->GetFilter()->GetMaximumOutput();
251 return this->GetFilter()->GetMaximumOutput();
258 return this->GetFilter()->GetMinimumIndexOutput()->Get();
262 return this->GetFilter()->GetMinimumIndexOutput();
266 return this->GetFilter()->GetMinimumIndexOutput();
272 return this->GetFilter()->GetMaximumIndexOutput()->Get();
276 return this->GetFilter()->GetMaximumIndexOutput();
280 return this->GetFilter()->GetMaximumIndexOutput();
297 void operator=(
const Self&) =
delete;
302 #ifndef OTB_MANUAL_INSTANTIATION