21 #ifndef otbLineDetectorImageFilterBase_h
22 #define otbLineDetectorImageFilterBase_h
24 #include "itkNearestNeighborInterpolateImageFunction.h"
25 #include "itkLinearInterpolateImageFunction.h"
28 #include "itkNumericTraits.h"
54 template <
class TInputImage,
class TOutputImage,
class TOutputImageDirection = TOutputImage,
55 class TInterpolator = itk::LinearInterpolateImageFunction<TInputImage>>
60 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
61 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
85 typedef typename InputImageType::PointType
TPoint;
96 typedef typename InputImageType::SizeType
SizeType;
99 itkSetMacro(LengthLine,
unsigned int);
102 itkGetConstReferenceMacro(LengthLine,
unsigned int);
105 itkSetMacro(WidthLine,
unsigned int);
108 itkGetConstReferenceMacro(WidthLine,
unsigned int);
114 itkGetConstReferenceMacro(Radius,
SizeType);
123 itkSetMacro(NumberOfDirections,
unsigned int);
126 itkGetConstReferenceMacro(NumberOfDirections,
unsigned int);
128 void GenerateInputRequestedRegion()
override;
135 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
137 void BeforeThreadedGenerateData()
override;
148 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
150 virtual double ComputeMeasure(std::vector<double>* m1, std::vector<double>* m2, std::vector<double>* m3);
170 void operator=(
const Self&) =
delete;
174 #ifndef OTB_MANUAL_INSTANTIATION