21 #ifndef otbImageToSURFKeyPointSetFilter_h
22 #define otbImageToSURFKeyPointSetFilter_h
24 #include "itkConstNeighborhoodIterator.h"
26 #include "itkPointSet.h"
27 #include <itkRescaleIntensityImageFilter.h>
29 #include "itkResampleImageFilter.h"
31 #include "itkVector.h"
61 template <
class TInputImage,
class TOutputPo
intSet>
82 typedef typename InputImageType::IndexType
IndexType;
85 typedef typename InputImageType::SizeType
SizeType;
95 itkSetMacro(OctavesNumber,
int);
96 itkGetMacro(OctavesNumber,
int);
100 itkSetMacro(ScalesNumber,
int);
101 itkGetMacro(ScalesNumber,
int);
105 itkGetMacro(NumberOfPoints,
int);
141 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
242 #ifndef OTB_MANUAL_INSTANTIATION
This class represent a list of images.
itk::SmartPointer< Self > Pointer
This class compute the Hessian determinant of each pixel of an input image.
itk::SmartPointer< Self > Pointer
Base class to output PointSet data with image data as input.
This class extracts key points from an image through a pyramidal gaussian based decomposition.
TOutputPointSet::PointIdentifier OutputPointIdentifierType
InputImageType::PixelType PixelValue
InputImageType::IndexType PixelIndex
InputImagePointerType m_determinantImage
void PrintSelf(std::ostream &os, itk::Indent indent) const override
ImageToPointSetFilter< TInputImage, TOutputPointSet > Superclass
ResampleFilterType::Pointer ResampleFilterPointerType
unsigned int m_DifferentSamplePoints
virtual VectorType ComputeDescriptor(const NeighborhoodType &neigh, double O, double S)
std::vector< double > VectorType
bool RefineLocationKeyPoint(const NeighborhoodIteratorType ¤tScale, const NeighborhoodIteratorType &previousScale, const NeighborhoodIteratorType &nextScale, VectorPointType &solution)
itk::SmartPointer< Self > Pointer
virtual bool IsLocalExtremumAround(const NeighborhoodType &neigh, double CenterValue)
itk::ConstNeighborhoodIterator< InputImageType > NeighborhoodIteratorType
InputImageType::Pointer InputImagePointerType
virtual bool IsLocalExtremum(const NeighborhoodType &neigh)
TOutputPointSet::PointType OutputPointType
DetHessianPointerFilter m_DetHessianFilter
otb::ImageList< InputImageType > ImageListType
otb::ImageToHessianDeterminantImageFilter< InputImageType, InputImageType > ImageToDetHessianImageType
InputImagePointerType m_ImageMovedNext
TOutputPointSet::Pointer OutputPointSetPointerType
void GenerateData() override
ImageToDetHessianImageType::Pointer DetHessianPointerFilter
~ImageToSURFKeyPointSetFilter() override
ImageListType::Pointer ImageListTypePointer
TInputImage InputImageType
ImageToSURFKeyPointSetFilter()
void operator=(const Self &)=delete
ImageListTypePointer m_ImageList
InputImagePointerType m_ImageMovedPrev
itk::ResampleImageFilter< InputImageType, InputImageType > ResampleFilterType
ImageToSURFKeyPointSetFilter Self
ResampleFilterPointerType m_ResampleFilter
InputImagePointerType m_ImageCurrent
ImageToSURFKeyPointSetFilter(const Self &)=delete
virtual int GetMin(int a, int b, int c)
InputImageType::IndexType IndexType
InputImageType::SpacingType SpacingType
TOutputPointSet OutputPointSetType
InputImageType::PointType PointImageType
TOutputPointSet::PixelType OutputPixelType
NeighborhoodIteratorType::NeighborhoodType NeighborhoodType
NeighborhoodType::OffsetType OffsetType
itk::Vector< PixelValue, 3 > VectorPointType
InputImageType::SizeType SizeType
virtual double AssignOrientation(const NeighborhoodType &neigh, double S)
itk::SmartPointer< const Self > ConstPointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.