pcl::PointCloud<pcl::PFHSignature125>::Ptr cloud_pfhOutput(new pcl::PointCloud<pcl::PFHSignature125>);
cloud_pfhOutput->is_dense = true;
pcl::search::KdTree<pcl::PointXYZ>::Ptr pfhKDTree(new pcl::search::KdTree<pcl::PointXYZ>);
pcl::PFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::PFHSignature125> pfh;
pfh.setSearchMethod(pfhKDTree);
pfh.setKSearch(numberOfNearestNeighbor);
pfh.setInputCloud(cloud_siftOutput);
pfh.setInputNormals(cloud_normals);
pfh.setSearchSurface(cloud_sampled);
//pfh.setRadiusSearch(searchRadius);
pfh.compute(*cloud_pfhOutput);
一开始的时候,用的邻近点个数,250,
即
pfh.setSearchMethod(250);
但是对于大点云来说,不合适,结果cloud_pfhOutput里面的descriptorSize()都是0,即为空
后来改为pfh.setRadiusSearch(searchRadius);
对空间距离不好把握,所以也为空
再改为邻近点为10,
即
pfh.setSearchMethod(10);
OK