38 #include <pcl/keypoints/keypoint.h>
42 template<
typename Po
intT>
66 return (
static_cast<float> (299*p.r + 587*p.g + 114*p.b) / 1000.0f);
75 return (
static_cast<float> (299*p.r + 587*p.g + 114*p.b) / 1000.0f);
92 template <
typename Po
intInT,
typename Po
intOutT>
96 using Ptr = shared_ptr<SIFTKeypoint<PointInT, PointOutT> >;
97 using ConstPtr = shared_ptr<const SIFTKeypoint<PointInT, PointOutT> >;
112 min_contrast_ (-std::numeric_limits<float>::max ()),
115 name_ =
"SIFTKeypoint";
124 setScales (
float min_scale,
int nr_octaves,
int nr_scales_per_octave);
153 float base_scale,
int nr_scales_per_octave,
164 const std::vector<float> &scales,
165 Eigen::MatrixXf &diff_of_gauss);
176 const Eigen::MatrixXf &diff_of_gauss,
177 pcl::Indices &extrema_indices, std::vector<int> &extrema_scales);
181 float min_scale_{0.0};
187 int nr_scales_per_octave_{0};
197 std::vector<pcl::PCLPointField> out_fields_;
199 SIFTKeypointFieldSelector<PointInT> getFieldValue_;
203 #include <pcl/keypoints/impl/sift_keypoint.hpp>
KdTree represents the base spatial locator class for kd-tree implementations.
Keypoint represents the base class for key points.
std::string name_
The key point detection method's name.
SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset ...
shared_ptr< SIFTKeypoint< PointInT, PointOutT > > Ptr
bool initCompute() override
void setMinimumContrast(float min_contrast)
Provide a threshold to limit detection of keypoints without sufficient contrast.
typename Keypoint< PointInT, PointOutT >::KdTree KdTree
SIFTKeypoint()
Empty constructor.
shared_ptr< const SIFTKeypoint< PointInT, PointOutT > > ConstPtr
void setScales(float min_scale, int nr_octaves, int nr_scales_per_octave)
Specify the range of scales over which to search for keypoints.
void detectKeypoints(PointCloudOut &output) override
Detect the SIFT keypoints for a set of points given in setInputCloud () using the spatial locator in ...
typename Keypoint< PointInT, PointOutT >::PointCloudIn PointCloudIn
typename Keypoint< PointInT, PointOutT >::PointCloudOut PointCloudOut
IndicesAllocator<> Indices
Type used for indices in PCL.
A point structure representing Euclidean xyz coordinates, together with normal coordinates and the su...
A point structure representing Euclidean xyz coordinates, and the RGBA color.
A point structure representing Euclidean xyz coordinates, and the RGB color.
float operator()(const PointT &p) const