38 #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 using Ptr = shared_ptr<SIFTKeypoint<PointInT, PointOutT> >;
98 using ConstPtr = shared_ptr<const SIFTKeypoint<PointInT, PointOutT> >;
113 min_contrast_ (-std::numeric_limits<float>::max ()),
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 pcl::Indices &extrema_indices, std::vector<int> &extrema_scales);
182 float min_scale_{0.0};
188 int nr_scales_per_octave_{0};
198 std::vector<pcl::PCLPointField> out_fields_;
200 SIFTKeypointFieldSelector<PointInT> getFieldValue_;
204 #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
Defines all the PCL implemented PointT point type structures.
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