1. 程式人生 > 其它 >10:C++搭配PCL對點雲去中心化

10:C++搭配PCL對點雲去中心化

  • 計算點雲質心,並將其去中心化,即將點雲質心設為座標系原點

 1 #pragma warning(disable:4996)
 2 #include <pcl/registration/ia_ransac.h>//取樣一致性
 3 #include <pcl/point_types.h>
 4 #include <pcl/point_cloud.h>
 5 #include <pcl/features/normal_3d.h>
 6 #include <pcl/features/fpfh.h>
 7 #include <pcl/search/kdtree.h>
 8
#include <pcl/io/pcd_io.h> 9 #include <pcl/filters/voxel_grid.h>// 10 #include <pcl/filters/filter.h>// 11 #include <pcl/registration/icp.h>//icp配準 12 #include <pcl/visualization/pcl_visualizer.h>//視覺化 13 #include <time.h>//時間 14 #include <math.h> 15 #include <vector> 16
//4計算點雲質心 17 Eigen::Vector4f centroid; 18 pcl::compute3DCentroid(*cloud_src, centroid); 19 std::cout << "濾波前的質心" << centroid[0] << "," << centroid[1] << "," << centroid[2] << "," << endl; 20 21 //5去中心化 22 for (size_t i = 0; i < cloud_src->points.size(); ++i)
23 { 24 cloud_src->points[i].x -= centroid[0]; 25 cloud_src->points[i].y -= centroid[1]; 26 cloud_src->points[i].z -= centroid[2]; 27 }