小论文需要在PCL中选择关键点一定邻域内的点云,在这里记录显示单个点邻域点云的方法。
//搜索source关键点周围的点云
//创建kdtree 结构
pcl::KdTreeFLANN<pcl::PointXYZ> kdtree;
//传入点云
//source_Ransac_keypoint_trans
kdtree.setInputCloud(source_ori);
pcl::PointCloud<pcl::PointXYZ>::Ptr source_key_Neigh(new
pcl::PointCloud<pcl::PointXYZ>());
pcl::PointCloud<pcl::PointXYZ>::Ptr source_key_point(new
pcl::PointCloud<pcl::PointXYZ>());
std::vector<int> pointIdxRadiusSearch;
std::vector<float> pointRadiusSquaredDistance;
//设置输入点
pcl::PointXYZ searchPoint; //source_22
int j;
for (int i = 0; i < source_ori->size(); i++)
{
//设置输入点条件
if (i == source_ori->size()/2)
{
searchPoint = source_ori->at(i);
source_key_point->push_back(source_ori->at(i));
//设置邻域半径
float radius = 0.005;
if (kdtree.radiusSearch(searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDi