如题,pcl输出的fpfh特征描述子默认是33维,我想要改变,该怎么做,为什么用fpfh.setNrSubdivisions()没有用呢
你试一下下面的参数:
pcl::FPFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::FPFHSignature33> fpfh;
fpfh.setNrSubdivisions (/* 设置球形区域的子区域数 */);
fpfh.setFeatureSize (/* 设置每个球形区域的大小 */);
setNrSubdivisions函数设置球形区域的子区域数,这个参数会影响到特征的维度。例如,当设置子区域数为4时,得到的特征维度将是4x4x4=64维。setFeatureSize函数设置每个球形区域的大小,这个参数会影响到点云中的采样密度。
如果你已经使用了setNrSubdivisions函数,但仍然没有改变FPFH的维度,可能是因为你没有正确地设置参数。请注意,setNrSubdivisions函数只能设置球形区域的子区域数,而不是特征的总维度。如果你想要改变特征的总维度,应该调整setFeatureSize函数的参数。
另外,需要注意的是,如果你将FPFH特征用作点云匹配等任务中的输入,那么你还需要确保你的算法可以处理你所得到的新维度的特征。例如,如果你使用ICP算法进行点云配准,那么你需要相应地调整ICP算法中的参数,以适应你新的特征维度。