21 #ifndef otbMultiImageFileWriter_h
22 #define otbMultiImageFileWriter_h
26 #include "itkImageBase.h"
27 #include "itkProcessObject.h"
28 #include "itkImageIOBase.h"
29 #include "OTBImageIOExport.h"
128 template <
class TImage>
129 void AddInputImage(
const TImage* inputPtr,
const std::string& fileName);
135 template <
class TWriter>
136 void AddInputWriter(
typename TWriter::Pointer writer);
142 this->UpdateOutputInformation();
143 this->UpdateOutputData(NULL);
176 if (
typeid(event) !=
typeid(itk::ProgressEvent))
181 itk::ProcessObject* processObject =
dynamic_cast<itk::ProcessObject*
>(object);
184 m_DivisionProgress = processObject->GetProgress();
187 this->UpdateFilterProgress();
192 this->UpdateProgress((m_DivisionProgress + m_CurrentDivision) / m_NumberOfDivisions);
220 SinkBase(ImageBaseType::ConstPointer inputImage) : m_InputImage(inputImage)
226 virtual ImageBaseType::ConstPointer
GetInput()
const
232 return const_cast<ImageBaseType*
>(m_InputImage.GetPointer());
252 template <
class TImage>
259 Sink(
typename TImage::ConstPointer inputImage,
const std::string& filename);
266 void WriteImageInformation()
override;
268 bool CanStreamWrite()
const override;
274 itk::ImageRegion<2> GetRegionToWrite()
const override;
293 #ifndef OTB_MANUAL_INSTANTIATION
itk::SmartPointer< Self > Pointer
itk::SmartPointer< Self > Pointer
Creation of an "otb" image which contains metadata.
virtual void Write(const RegionType &streamRegion)=0
ImageBaseType::ConstPointer m_InputImage
virtual itk::ImageRegion< 2 > GetRegionToWrite() const =0
virtual ImageBaseType::ConstPointer GetInput() const
virtual bool CanStreamWrite() const =0
virtual void WriteImageInformation()=0
virtual ImageBaseType::Pointer GetInput()
std::shared_ptr< SinkBase > Pointer
SinkBase(ImageBaseType::ConstPointer inputImage)
otb::ImageFileWriter< TImage >::Pointer m_Writer
otb::ImageIOBase::Pointer m_ImageIO
std::shared_ptr< Sink > Pointer
Streams a pipeline with multiple outputs. It writes each output to a file. Inputs are connected to th...
void UpdateFilterProgress()
virtual void GenerateData(void) override
unsigned int m_CurrentDivision
virtual void GenerateInputRequestedRegion() override
unsigned int m_NumberOfDivisions
void SetTileDimensionTiledStreaming(unsigned int tileDimension)
itk::ProcessObject Superclass
itk::SmartPointer< const Self > ConstPointer
virtual void UpdateOutputInformation() override
virtual void InitializeStreaming()
ImageBaseType::IndexValueType IndexValueType
void operator=(const MultiImageFileWriter &)=delete
ImageBaseType::RegionType RegionType
void ResetAllRequestedRegions(ImageBaseType *imagePtr)
void SetNumberOfDivisionsStrippedStreaming(unsigned int nbDivisions)
void SetAutomaticAdaptativeStreaming(unsigned int availableRAM=0, double bias=1.0)
virtual void Update() override
unsigned long m_ObserverID
StreamingManager< FakeOutputType > StreamingManagerType
virtual RegionType GetStreamRegion(int inputIndex)
virtual ~MultiImageFileWriter()
void SetAutomaticStrippedStreaming(unsigned int availableRAM=0, double bias=1.0)
MultiImageFileWriter Self
void SetNumberOfLinesStrippedStreaming(unsigned int nbLinesPerStrip)
ImageBaseType::SizeType SizeType
std::vector< RegionType > m_StreamRegionList
itk::ImageBase< 2 > ImageBaseType
ImageBaseType::IndexType IndexType
void ObserveSourceFilterProgress(itk::Object *object, const itk::EventObject &event)
void SetNumberOfDivisionsTiledStreaming(unsigned int nbDivisions)
otb::Image< unsigned char, 2 > FakeOutputType
void SetAutomaticTiledStreaming(unsigned int availableRAM=0, double bias=1.0)
StreamingManagerType::Pointer m_StreamingManager
virtual void UpdateOutputData(itk::DataObject *) override
itk::SmartPointer< Self > Pointer
std::vector< std::shared_ptr< SinkBase > > SinkListType
ImageBaseType::SizeValueType SizeValueType
This class handles the streaming process used in the writers implementation.
itk::SmartPointer< Self > Pointer
OTBApplicationEngine_EXPORT void Write(const std::string &filename, Application::Pointer application)
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.