OTB  7.2.0
Orfeo Toolbox
otbSiftFastImageFilter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2020 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbSiftFastImageFilter_h
22 #define otbSiftFastImageFilter_h
23 
25 #include "otbImage.h"
26 
27 namespace otb
28 {
29 
51 template <class TInputImage, class TOutputPointSet>
52 class ITK_EXPORT SiftFastImageFilter : public ImageToPointSetFilter<TInputImage, TOutputPointSet>
53 {
54 public:
58  typedef itk::SmartPointer<Self> Pointer;
59  typedef itk::SmartPointer<const Self> ConstPointer;
60 
62  itkNewMacro(Self);
63 
66 
69  typedef TInputImage InputImageType;
70  typedef typename TInputImage::Pointer InputImagePointerType;
71  typedef typename TInputImage::PixelType PixelType;
72 
73  typedef TOutputPointSet OutputPointSetType;
74  typedef typename TOutputPointSet::Pointer OutputPointSetPointerType;
75  typedef typename TOutputPointSet::PixelType OutputPixelType;
77  typedef typename TOutputPointSet::PointIdentifier OutputPointIdentifierType;
78 
80  typedef std::vector<std::pair<OutputPointType, double>> OrientationVectorType;
81 
82  itkSetMacro(ScalesNumber, unsigned int);
83  itkGetMacro(ScalesNumber, unsigned int);
84 
85  // Set/Get the Orientation of all KeyPoints
86  OrientationVectorType GetOrientationVector()
87  {
88  return m_OrientationVector;
89  }
90 
91 protected:
93  void GenerateData() override;
94 
97 
100  {
101  }
102 
104  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
105 
106 private:
108  unsigned int m_ScalesNumber;
109  OrientationVectorType m_OrientationVector;
110 };
111 } // End namespace otb
112 #ifndef OTB_MANUAL_INSTANTIATION
114 #endif
115 
116 #endif
TInputImage::PixelType PixelType
TOutputPointSet::PointIdentifier OutputPointIdentifierType
OrientationVectorType m_OrientationVector
itk::SmartPointer< const Self > ConstPointer
TOutputPointSet::PixelType OutputPixelType
std::vector< std::pair< OutputPointType, double > > OrientationVectorType
ImageToPointSetFilter< TInputImage, TOutputPointSet > Superclass
TOutputPointSet::Pointer OutputPointSetPointerType
This class extracts key points from an input image through a pyramidal decomposition.
TOutputPointSet::PointType OutputPointType
otb::Image< float, 2 > FloatImageType
Base class to output PointSet data with image data as input.
OrientationVectorType GetOrientationVector()
Creation of an "otb" image which contains metadata.
Definition: otbImage.h:89
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
TInputImage::Pointer InputImagePointerType
VectorImageType::PointType PointType
Definition: mvdTypes.h:183