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> >;
80 name_ =
"SmoothedSurfacesKeypoint";
116 float neighborhood_constant_{0.5f};
117 std::vector<PointCloudTConstPtr> clouds_;
118 std::vector<PointCloudNTConstPtr> cloud_normals_;
119 std::vector<KdTreePtr> cloud_trees_;
121 std::vector<std::pair<float, std::size_t> > scales_;
122 float input_scale_{0.0f};
123 std::size_t input_index_{0u};
126 compareScalesFunction (
const std::pair<float, std::size_t> &a,
127 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.