21 #ifndef otbStreamingShrinkImageFilter_h
22 #define otbStreamingShrinkImageFilter_h
50 itkStaticConstMacro(ImageDimension,
unsigned int, 2);
55 return ImageDimension;
74 unsigned int GetNumberOfSplits(
const RegionType& region,
unsigned int requestedNumber)
override;
79 RegionType GetSplit(
unsigned int i,
unsigned int numberOfPieces,
const RegionType& region)
override;
81 itkGetMacro(TileSizeAlignment,
unsigned int);
83 itkGetMacro(TileDimension,
unsigned int);
85 itkSetMacro(ShrinkFactor,
unsigned int);
86 itkGetMacro(ShrinkFactor,
unsigned int);
95 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
108 template <
class TInputImage>
129 typedef typename ImageType::InternalPixelType
PixelType;
131 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
135 void PrepareStreaming(itk::DataObject* input,
const RegionType& region)
override;
139 m_ShrinkFactor = val;
144 return m_ShrinkFactor;
169 template <
class TInputImage,
class TOutputImage = TInputImage>
197 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
204 return m_ShrunkOutput;
207 void Synthetize(
void)
override;
209 void Reset(
void)
override;
211 itkSetMacro(ShrinkFactor,
unsigned int);
212 itkGetMacro(ShrinkFactor,
unsigned int);
219 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
221 void BeforeThreadedGenerateData()
override;
224 void ThreadedGenerateData(
const RegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
226 void AfterThreadedGenerateData()
override;
231 void AllocateOutputs()
override;
233 void GenerateOutputInformation()
override;
238 void operator=(
const Self&) =
delete;
265 template <
class TInputImage,
class TOutputImage = TInputImage>
288 using Superclass::SetInput;
291 this->GetFilter()->SetInput(input);
296 return this->GetFilter()->GetInput();
301 return this->GetFilter()->GetShrunkOutput();
309 m_StreamingManager->SetShrinkFactor(this->GetFilter()->GetShrinkFactor());
310 Superclass::Update();
318 m_StreamingManager = StreamingShrinkStreamingManagerType::New();
319 this->GetStreamer()->SetStreamingManager(m_StreamingManager);
330 void operator=(
const Self&) =
delete;
337 #ifndef OTB_MANUAL_INSTANTIATION