40 #include <pcl/keypoints/keypoint.h>
53 template <
typename Po
intT,
typename Po
intNT>
57 using Ptr = shared_ptr<SmoothedSurfacesKeypoint<PointT, PointNT> >;
58 using ConstPtr = shared_ptr<const SmoothedSurfacesKeypoint<PointT, PointNT> >;
75 neighborhood_constant_ (0.5f),
83 name_ =
"SmoothedSurfacesKeypoint";
119 float neighborhood_constant_;
120 std::vector<PointCloudTConstPtr> clouds_;
121 std::vector<PointCloudNTConstPtr> cloud_normals_;
122 std::vector<KdTreePtr> cloud_trees_;
124 std::vector<std::pair<float, std::size_t> > scales_;
126 std::size_t input_index_;
129 compareScalesFunction (
const std::pair<float, std::size_t> &a,
130 const std::pair<float, std::size_t> &b) {
return a.first < b.first; }
Keypoint represents the base class for key points.
std::string name_
The key point detection method's name.
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointT > > Ptr
shared_ptr< const PointCloud< PointT > > ConstPtr
Based on the paper: Xinju Li and Igor Guskov Multi-scale features for approximate alignment of point-...
void setNeighborhoodConstant(float neighborhood_constant)
SmoothedSurfacesKeypoint()
void setInputNormals(const PointCloudNTConstPtr &normals)
typename PointCloudNT::ConstPtr PointCloudNTConstPtr
float getNeighborhoodConstant()
bool initCompute() override
typename PointCloudT::Ptr PointCloudTPtr
typename Keypoint< PointT, PointT >::KdTreePtr KdTreePtr
void addSmoothedPointCloud(const PointCloudTConstPtr &cloud, const PointCloudNTConstPtr &normals, KdTreePtr &kdtree, float &scale)
shared_ptr< const SmoothedSurfacesKeypoint< PointT, PointNT > > ConstPtr
void setInputScale(float input_scale)
typename PointCloudT::ConstPtr PointCloudTConstPtr
void detectKeypoints(PointCloudT &output) override
shared_ptr< SmoothedSurfacesKeypoint< PointT, PointNT > > Ptr
A point structure representing Euclidean xyz coordinates, and the RGB color.