22 #ifndef otbStreamingHistogramVectorImageFilter_h
23 #define otbStreamingHistogramVectorImageFilter_h
29 #include "itkStatisticsAlgorithm.h"
30 #include "itkNumericTraits.h"
31 #include "itkHistogram.h"
54 template <
class TInputImage>
74 typedef typename TInputImage::SizeType
SizeType;
79 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
82 itkStaticConstMacro(ImageDimension,
unsigned int, TInputImage::ImageDimension);
85 typedef typename itk::NumericTraits<InternalPixelType>::RealType
RealType;
97 typedef itk::Statistics::Histogram<HistogramMeasurementRealType, DFContainerType>
HistogramType;
120 itkSetMacro(NoDataFlag,
bool);
125 itkGetMacro(NoDataFlag,
bool);
130 itkBooleanMacro(NoDataFlag);
143 HistogramListType* GetHistogramListOutput();
144 const HistogramListType* GetHistogramListOutput()
const;
148 itkGetConstReferenceMacro(HistogramMin, MeasurementVectorType);
151 itkSetMacro(HistogramMin, MeasurementVectorType);
154 itkGetConstReferenceMacro(HistogramMax, MeasurementVectorType);
157 itkSetMacro(HistogramMax, MeasurementVectorType);
160 itkSetMacro(SubSamplingRate,
unsigned int);
163 itkGetMacro(SubSamplingRate,
unsigned int);
168 DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
override;
169 using Superclass::MakeOutput;
174 void AllocateOutputs()
override;
175 void GenerateOutputInformation()
override;
176 void Synthetize(
void)
override;
177 void Reset(
void)
override;
185 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
187 void ThreadedGenerateData(
const RegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
191 void operator=(
const Self&) =
delete;
227 template <
class TInputImage>
250 using Superclass::SetInput;
253 this->GetFilter()->SetInput(input);
257 return this->GetFilter()->GetInput();
263 return this->GetFilter()->GetHistogramListOutput();
278 void operator=(
const Self&) =
delete;
283 #ifndef OTB_MANUAL_INSTANTIATION