36 #ifndef PCL_SIFT_KEYPOINT_H_
37 #define PCL_SIFT_KEYPOINT_H_
39 #include <pcl/keypoints/keypoint.h>
43 template<
typename Po
intT>
67 return (static_cast<float> (299*p.r + 587*p.g + 114*p.b) / 1000.0f);
76 return (static_cast<float> (299*p.r + 587*p.g + 114*p.b) / 1000.0f);
93 template <
typename Po
intInT,
typename Po
intOutT>
97 typedef boost::shared_ptr<SIFTKeypoint<PointInT, PointOutT> >
Ptr;
98 typedef boost::shared_ptr<const SIFTKeypoint<PointInT, PointOutT> >
ConstPtr;
112 SIFTKeypoint () : min_scale_ (0.0), nr_octaves_ (0), nr_scales_per_octave_ (0),
113 min_contrast_ (-std::numeric_limits<float>::max ()), scale_idx_ (-1),
114 out_fields_ (), getFieldValue_ ()
116 name_ =
"SIFTKeypoint";
125 setScales (
float min_scale,
int nr_octaves,
int nr_scales_per_octave);
154 float base_scale,
int nr_scales_per_octave,
165 const std::vector<float> &scales,
166 Eigen::MatrixXf &diff_of_gauss);
177 const Eigen::MatrixXf &diff_of_gauss,
178 std::vector<int> &extrema_indices, std::vector<int> &extrema_scales);
188 int nr_scales_per_octave_;
198 std::vector<pcl::PCLPointField> out_fields_;
204 #include <pcl/keypoints/impl/sift_keypoint.hpp>
206 #endif // #ifndef PCL_SIFT_KEYPOINT_H_