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();
127 itkSetMacro(Radius, RadiusSizeType);
131 itkSetMacro(UpperBoundIncreaseFactor,
double);
132 itkGetMacro(UpperBoundIncreaseFactor,
double);
136 itkSetMacro(PaddingValue, Input1ImagePixelType);
139 itkGetConstReferenceMacro(PaddingValue, Input1ImagePixelType);
144 itkSetMacro(UsePaddingValue,
bool);
145 itkGetMacro(UsePaddingValue,
bool);
154 void BeforeThreadedGenerateData()
override;
166 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
171 void GenerateInputRequestedRegion(
void)
override;
179 void operator=(
const Self&) =
delete;
181 void ComputeHistogram();
199 #ifndef OTB_MANUAL_INSTANTIATION