本文学习了一种快速寻找无序点云的邻近点方法,就是构造KD树。用树这种数据结构,能够忽略掉许多点的比较,提高搜索速度。原理部分这篇博客讲的非常详细:
KNN算法与Kd树
以下是在阅读完博主博文之后,自己仿照写的一个寻找最近点算法。代码还是要自己多写,粘贴复制一时爽,用的时候就会痛苦万分,不断去找文件和文件夹。
两点说明:
1、如果设置的目标点为待搜索点云中的点,则搜索到的邻近点包含其本身;
2、以下为寻找K个最近点,还有一种是寻找一定范围类的邻近点,大家对比分析;
#include<pcl/point_cloud.h>
#include<pcl/kdtree/kdtree_flann.h>
#include<vector>
#include<iostream>
#include<ctime>
int main()
{
srand(time(NULL));
time_t begin, end;
begin = clock();
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
cloud->height = 1;
cloud->width = 100000;
cloud->is_dense = true;
cloud->resize(cloud->