1代码段
1.1 PCD文件
rosrun pcl_ros bag_to_pcd data.bag /laser_tilt_cloud ./pointclouds
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::io::savePCDFileBinary("pcd.pcd", *cloud);
pcl::io::savePCDFileASCII ("pcd.pcd", *cloud);
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::io::loadPCDFile<pcl::PointXYZ>("pcd.pcd", *cloud);
1.2 两种ROS转PCL方式
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
pcl::fromROSMsg(input, *cloud);
int num = cloud->points.size ();
viewer.showCloud(cloud);
sensor_msgs::PointCloud2 output;
pcl::toROSMsg(*cloud, output);
output.header.frame_id = "pcl";
pcl_pub.publish(output);
pcl::PointCloud<pcl::PointXYZ> cloud;
pcl::fromROSMsg (input, cloud);
int num = cloud.points.size ();
viewer.showCloud(cloud.makeShared());
sensor_msgs::PointCloud2 output;
pcl::toROSMsg(cloud, output);
output.header.frame_id = "pcl";
pcl_pub.publish(output);
pcl::PointCloud<pcl::PointXYZ>::Ptr cloudPointer(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ> cloud;
cloud = *cloudPointer;
cloudPointer = cloud.makeShared();
1.2 PointCloud和PCLPointCloud2类型相互转换
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PCLPointCloud2 cloud2;
pcl::fromPCLPointCloud2(cloud2, *cloud);
pcl::toPCLPointCloud2(*cloud, cloud2);
2 小波变换