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;
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();
302 #ifndef OTB_MANUAL_INSTANTIATION
This filter link a persistent filter with a StreamingImageVirtualWriter.
This filter is the base class for all filter persisting data through multiple update....
Compute min. max of an image using the output requested region.
itk::DataObject::Pointer DataObjectPointer
PersistentMinMaxImageFilter(const Self &)=delete
PersistentImageFilter< TInputImage, TInputImage > Superclass
TInputImage::Pointer InputImagePointer
TInputImage::PixelType PixelType
~PersistentMinMaxImageFilter() override
itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
itk::SimpleDataObjectDecorator< PixelType > PixelObjectType
itk::SimpleDataObjectDecorator< IndexType > IndexObjectType
PixelType GetMaximum() const
PersistentMinMaxImageFilter Self
TInputImage::SizeType SizeType
TInputImage::RegionType RegionType
TInputImage::IndexType IndexType
itk::SmartPointer< const Self > ConstPointer
void operator=(const Self &)=delete
std::vector< IndexType > m_ThreadMinIndex
IndexType GetMinimumIndex() const
PixelType GetMinimum() const
itk::SmartPointer< Self > Pointer
std::vector< PixelType > m_ThreadMax
std::vector< IndexType > m_ThreadMaxIndex
IndexType GetMaximumIndex() const
std::vector< PixelType > m_ThreadMin
This class streams the whole input image through the PersistentMinMaxImageFilter.
const IndexObjectType * GetMinimumIndexOutput() const
IndexObjectType * GetMaximumIndexOutput()
itk::SmartPointer< const Self > ConstPointer
const PixelObjectType * GetMinimumOutput() const
const IndexObjectType * GetMaximumIndexOutput() const
IndexType GetMaximumIndex() const
TInputImage InputImageType
StatFilterType::IndexType IndexType
void operator=(const Self &)=delete
PixelType GetMinimum() const
Superclass::FilterType StatFilterType
StatFilterType::PixelType PixelType
const PixelObjectType * GetMaximumOutput() const
StreamingMinMaxImageFilter(const Self &)=delete
void SetInput(InputImageType *input)
StatFilterType::IndexObjectType IndexObjectType
~StreamingMinMaxImageFilter() override
IndexObjectType * GetMinimumIndexOutput()
PixelObjectType * GetMaximumOutput()
StreamingMinMaxImageFilter Self
StreamingMinMaxImageFilter()
IndexType GetMinimumIndex() const
StatFilterType::PixelObjectType PixelObjectType
PersistentFilterStreamingDecorator< PersistentMinMaxImageFilter< TInputImage > > Superclass
const InputImageType * GetInput()
PixelType GetMaximum() const
PixelObjectType * GetMinimumOutput()
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.