21 #ifndef otbStreamingShrinkImageFilter_h
22 #define otbStreamingShrinkImageFilter_h
26 #include "OTBImageManipulationExport.h"
49 itkStaticConstMacro(ImageDimension,
unsigned int, 2);
54 return ImageDimension;
80 itkGetMacro(TileSizeAlignment,
unsigned int);
82 itkGetMacro(TileDimension,
unsigned int);
84 itkSetMacro(ShrinkFactor,
unsigned int);
85 itkGetMacro(ShrinkFactor,
unsigned int);
94 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
107 template <
class TInputImage>
128 typedef typename ImageType::InternalPixelType
PixelType;
130 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
134 void PrepareStreaming(itk::DataObject* input,
const RegionType& region)
override;
138 m_ShrinkFactor = val;
143 return m_ShrinkFactor;
168 template <
class TInputImage,
class TOutputImage = TInputImage>
196 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
203 return m_ShrunkOutput;
206 void Synthetize(
void)
override;
208 void Reset(
void)
override;
210 itkSetMacro(ShrinkFactor,
unsigned int);
211 itkGetMacro(ShrinkFactor,
unsigned int);
218 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
220 void BeforeThreadedGenerateData()
override;
223 void DynamicThreadedGenerateData(
const RegionType& outputRegionForThread)
override;
225 void AfterThreadedGenerateData()
override;
230 void AllocateOutputs()
override;
232 void GenerateOutputInformation()
override;
264 template <
class TInputImage,
class TOutputImage = TInputImage>
287 using Superclass::SetInput;
290 this->GetFilter()->SetInput(input);
295 return this->GetFilter()->GetInput();
300 return this->GetFilter()->GetShrunkOutput();
308 m_StreamingManager->SetShrinkFactor(this->GetFilter()->GetShrinkFactor());
309 Superclass::Update();
317 m_StreamingManager = StreamingShrinkStreamingManagerType::New();
318 this->GetStreamer()->SetStreamingManager(m_StreamingManager);
336 #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....
PersistentShrinkImageFilter(const Self &)=delete
itk::SmartPointer< Self > Pointer
OutputImageType * GetShrunkOutput()
TInputImage InputImageType
PersistentShrinkImageFilter Self
TInputImage::IndexType IndexType
TInputImage::PixelType PixelType
OutputImagePointer m_ShrunkOutput
TInputImage::Pointer InputImagePointer
unsigned int m_ShrinkFactor
TInputImage::RegionType RegionType
itk::SmartPointer< const Self > ConstPointer
itk::DataObject::Pointer DataObjectPointer
TOutputImage::Pointer OutputImagePointer
void operator=(const Self &)=delete
TInputImage::SizeType SizeType
TOutputImage OutputImageType
PersistentImageFilter< TInputImage, TOutputImage > Superclass
This class handles the streaming process used in the writers implementation.
Generates a quicklook of the input image.
PersistentFilterStreamingDecorator< PersistentShrinkImageFilter< TInputImage, TOutputImage > > Superclass
otbSetObjectMemberMacro(Filter, ShrinkFactor, unsigned int)
StreamingShrinkStreamingManagerType::Pointer StreamingShrinkStreamingManagerPointerType
StreamingShrinkStreamingManagerPointerType m_StreamingManager
otbGetObjectMemberMacro(Filter, ShrinkFactor, unsigned int)
void operator=(const Self &)=delete
StreamingShrinkImageFilter(const Self &)=delete
void SetInput(InputImageType *input)
StreamingShrinkImageFilter Self
itk::SmartPointer< Self > Pointer
OutputImageType * GetOutput()
const InputImageType * GetInput()
~StreamingShrinkImageFilter() override
Superclass::FilterType PersistentFilterType
TInputImage InputImageType
void Update(void) override
TOutputImage OutputImageType
itk::SmartPointer< const Self > ConstPointer
StreamingShrinkStreamingManager< InputImageType > StreamingShrinkStreamingManagerType
StreamingShrinkImageFilter()
unsigned int GetNumberOfSplits(const RegionType ®ion, unsigned int requestedNumber) override
static unsigned int GetImageDimension()
unsigned int m_TileSizeAlignment
SizeType::SizeValueType SizeValueType
unsigned int m_TileDimension
RegionType GetSplit(unsigned int i, unsigned int numberOfPieces, const RegionType ®ion) override
itk::SmartPointer< const Self > ConstPointer
StreamingShrinkImageRegionSplitter(const StreamingShrinkImageRegionSplitter &)=delete
itk::FixedArray< unsigned int, ImageDimension > m_SplitsPerDimension
itk::SmartPointer< Self > Pointer
itk::ImageRegion< ImageDimension > RegionType
void operator=(const StreamingShrinkImageRegionSplitter &)=delete
IndexType::IndexValueType IndexValueType
unsigned int m_ShrinkFactor
itk::ImageRegionSplitter< 2 > Superclass
StreamingShrinkImageRegionSplitter()
void PrintSelf(std::ostream &os, itk::Indent indent) const override
itk::Index< ImageDimension > IndexType
~StreamingShrinkImageRegionSplitter() override
StreamingShrinkImageRegionSplitter Self
itk::Size< ImageDimension > SizeType
ImageType::InternalPixelType PixelType
void SetShrinkFactor(unsigned int val)
RegionType::SizeType SizeType
unsigned int m_ShrinkFactor
unsigned int GetShrinkFactor() const
itk::SmartPointer< const Self > ConstPointer
RegionType::IndexType IndexType
itk::SmartPointer< Self > Pointer
ImageType::Pointer ImagePointerType
ImageType::RegionType RegionType
StreamingShrinkStreamingManager(const StreamingShrinkStreamingManager &)=delete
StreamingManager< TInputImage > Superclass
StreamingShrinkStreamingManager Self
void operator=(const StreamingShrinkStreamingManager &)=delete
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.