pcl::PointCloud<pcl::PointXYZI>::Ptr source_cloud = pcl::PointCloud<pcl::PointXYZI>::Ptr(
new pcl::PointCloud<pcl::PointXYZI>);
pcl::io::loadPCDFile(file_source, *source_cloud);
// 点云转Eigen,并转为double
Eigen::Matrix<double, 3, Eigen::Dynamic> vertices_source = source_cloud->getMatrixXfMap(3,8,0).cast<double>();
// X轴移动1米
vertices_source.colwise() += Eigen::Vector3d(1.0,0.0,0.0);
// 存回点云
source_cloud->getMatrixXfMap(3,8,0)= vertices_source.cast<float>();
pcl::io::savePCDFileBinary("out.pcd", *source_cloud);
网友评论