点云知识的搬运与整理
1. ICP & NDT
ICP使用 kdTree 结构进行最快邻域搜索;
NDT使用 ocTree 进行网格化(体素化);
2. 点云智能指针的调换
std::cout << "Src Cloud filtered : " << source_cloud->points.size() << endl;
// situation 1
*aligned_cloud = *source_cloud; // 复制数据
source_cloud->points.resize(4);
std::cout << "Src Cloud : " << source_cloud->points.size() << endl;
std::cout << "align Cloud : " << aligned_cloud->points.size() << endl;
// situation 2
aligned_cloud.reset(new pcl::PointCloud<PointType>());
aligned_cloud = source_cloud; // 两个指针相同指向相同的数据
source_cloud->points.resize(44);
std::cout << "Src Cloud : " << source_cloud->points.size() << endl;
std::cout << "align Cloud : " << aligned_cloud->points.size() << endl;
return 0;
// situation 3 指针与数据
pcl::PointCloud<PointT> data;
source_cloud = data.makeShared();
*source_cloud = data; // 两句相同,都会发生数据的复制
/// output
Src Cloud filtered : 40251
Src Cloud : 4
align Cloud : 40251
Src Cloud : 44
align Cloud : 44
3. 常用函数
pcl::computeCovarianceMatrixNormalized();
pcl::computeMeanAndCovarianceMatrix();
pcl::getAllPcdFilesInDirectory();
pcl::squaredEuclideanDistance();
pcl::demeanPointCloud();