曲率是描述点云中每个点局部几何形状的一种度量。高曲率的点通常位于边缘、角点等显著位置。因此,通过检测曲率较高的点,我们可以找到点云中的关键点。
函数实现
下面是一个用于基于曲率检测关键点的函数实现
计算平均曲率
//计算平均曲率
float com_avg_curvature(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud,
pcl::PointCloud<pcl::Normal>::Ptr normals,
int i, float radius,
pcl::search::KdTree<pcl::PointXYZ>::Ptr tree) {
float avg_curvature = 0;
vector<int> point_ind;
vector<float> point_dist;
tree->radiusSearch(cloud->points[i], radius, point_ind, point_dist);
//tree->nearestKSearch(cloud->points[i], num, point_ind, point_dist);
for (int i = 0; i &l