PCL之VFH特征

在PCL官网中关于VFH特征有这么一段描述:
在这里插入图片描述
意思是VFH特征描述子长度为308,包含45×3长度的方向角信息加45长度的距离信息加128长度的视角方向信息。但默认情况下45长度的距离信息是不进行计算的,所得到的结果第135到180都是0:
在这里插入图片描述

对此官网的解释如下:
在这里插入图片描述
开启的方式也很简单:

  pcl::VFHEstimation vfh;
  vfh.setFillSizeComponent(true);

此函数功能描述如下:
PCL之VFH特征_第1张图片开启后就可以得到值了:
在这里插入图片描述

但建议开启时还要进行接下来的设置,目的是将距离归一化处理。

vfh.setNormalizeDistance(true);

不然得到的结果会出现这种情况:
在这里插入图片描述
原因是不开启归一化,算法计算索引的方式如下:

       int h_index;
       if (normalize_distances_)
         h_index = static_cast (std::floor (nr_bins_f_[3] * (pfh_tuple[3] / distance_normalization_factor)));
       else
         h_index = static_cast (pcl_round (pfh_tuple[3] * 100));
  
       h_index = std::max (std::min (h_index, nr_bins_f_[3] - 1), 0);
       hist_f_[3] (h_index) += hist_incr_size_component;

h_index是计算出的索引值,当不开启归一化处理,并且距离结果过大,所得的信息将全部堆积到距离信息直方图的最后一位。
PCL之VFH特征_第2张图片
关于点云特征描述子后续有时间会做一个整理。

你可能感兴趣的:(PCL成长之路,c++)