23 #ifndef otbKullbackLeiblerSupervizedDistanceImageFilter_h
24 #define otbKullbackLeiblerSupervizedDistanceImageFilter_h
74 template <
class TInput1,
class TInput2,
class TInputROIImage,
class TOutput>
82 void Evaluate(
const typename TInput1::ImageType* img1,
const typename TInput2::ImageType* img2,
const TInputROIImage* imgROI);
85 TOutput
operator()(
const TInput1& it1,
const TInput2& it2);
90 typedef itk::ConstNeighborhoodIterator<typename ROIConversionType1::OutputImageType>
ROIInputType1;
94 typedef itk::ConstNeighborhoodIterator<typename ROIConversionType2::OutputImageType>
ROIInputType2;
105 template <
class TInputImage1,
class TInputImage2,
class TInputROIImage,
class TOutputImage>
108 TInputImage1, TInputImage2, TOutputImage,
109 Functor::KullbackLeiblerSupervizedDistance<typename itk::ConstNeighborhoodIterator<TInputImage1>,
110 typename itk::ConstNeighborhoodIterator<TInputImage2>, TInputROIImage, typename TOutputImage::PixelType>>
116 TInputImage1, TInputImage2, TOutputImage,
118 TInputROIImage,
typename TOutputImage::PixelType>>
135 void SetTrainingArea(
const TInputROIImage* trainingImage);
138 void BeforeThreadedGenerateData(
void)
override;
142 this->SetNumberOfRequiredInputs(3);
150 void operator=(
const Self&) =
delete;
155 #ifndef OTB_MANUAL_INSTANTIATION