21 #ifndef otbBinaryFunctorNeighborhoodJoinHistogramImageFilter_h
22 #define otbBinaryFunctorNeighborhoodJoinHistogramImageFilter_h
24 #include "itkBinaryFunctorImageFilter.h"
25 #include "itkImageRegionIteratorWithIndex.h"
26 #include "itkConstNeighborhoodIterator.h"
27 #include "itkHistogram.h"
43 template <
class TInputImage1,
class TInputImage2,
class TOutputImage,
class TFunction>
49 typedef itk::ImageToImageFilter<TInputImage1, TOutputImage>
Superclass;
81 typedef typename NeighborhoodIteratorType1::RadiusType
RadiusType1;
82 typedef typename NeighborhoodIteratorType2::RadiusType
RadiusType2;
89 typedef typename itk::Statistics::Histogram<double, itk::Statistics::DenseFrequencyContainer2>
HistogramType;
94 void SetInput1(
const TInputImage1* image1);
97 void SetInput2(
const TInputImage2* image2);
100 const TInputImage1* GetInput1();
101 const TInputImage2* GetInput2();
131 itkSetMacro(UpperBoundIncreaseFactor,
double);
132 itkGetMacro(UpperBoundIncreaseFactor,
double);
144 itkSetMacro(UsePaddingValue,
bool);
145 itkGetMacro(UsePaddingValue,
bool);
154 void BeforeThreadedGenerateData()
override;
166 void DynamicThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread)
override;
171 void GenerateInputRequestedRegion(
void)
override;
181 void ComputeHistogram();
199 #ifndef OTB_MANUAL_INSTANTIATION
Implements neighborhood-wise generic operation of two images.
~BinaryFunctorNeighborhoodJoinHistogramImageFilter() override
double m_UpperBoundIncreaseFactor
itk::ConstNeighborhoodIterator< TInputImage1 > NeighborhoodIteratorType1
BinaryFunctorNeighborhoodJoinHistogramImageFilter(const Self &)=delete
NeighborhoodIteratorType1::RadiusType RadiusType1
unsigned char RadiusSizeType
HistogramType::SizeType HistogramSizeType
Input1ImagePixelType m_PaddingValue
itk::SmartPointer< const Self > ConstPointer
OutputImageType::PixelType OutputImagePixelType
NeighborhoodIteratorType2::RadiusType RadiusType2
Input1ImageType::PixelType Input1ImagePixelType
BinaryFunctorNeighborhoodJoinHistogramImageFilter Self
FunctorType & GetFunctor()
TInputImage2 Input2ImageType
itk::ProcessObject ProcessObjectType
OutputImageType::Pointer OutputImagePointer
TOutputImage OutputImageType
OutputImageType::RegionType OutputImageRegionType
HistogramType::MeasurementVectorType MeasurementVectorType
Input2ImageType::ConstPointer Input2ImageConstPointer
itk::Statistics::Histogram< double, itk::Statistics::DenseFrequencyContainer2 > HistogramType
Input2ImageType::Pointer Input2ImagePointer
itk::ConstNeighborhoodIterator< TInputImage2 > NeighborhoodIteratorType2
TInputImage1 Input1ImageType
itk::ImageToImageFilter< TInputImage1, TOutputImage > Superclass
Input1ImageType::Pointer Input1ImagePointer
Input2ImageType::PixelType Input2ImagePixelType
Input1ImageType::ConstPointer Input1ImageConstPointer
Input2ImageType::RegionType Input2ImageRegionType
HistogramType::Pointer m_Histogram
void operator=(const Self &)=delete
Input1ImageType::RegionType Input1ImageRegionType
void SetFunctor(const FunctorType &functor)
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.