PCL点云的创建、访问与转换

一、点云的创建与访问

1、vector的赋值方式

将point数据push_back到pcl::PointXYZ类型的模板中

1 pcl::PointCloud<pcl::PointXYZ> pointCloud;
2 pcl::PointXYZ point;
3       point.x = 2.0f - y;
4       point.y = y;
5       point.z = z;
6       pointCloud.points.push_back(point);

访问:PointXYZ 成员:float x,y,z;表示了xyz3D信息,可以通过points[i].data[0]或points[i].x访问点X的坐标值。

2、指针型类模板

1 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
2 for (int i = 0; i < cloud->points.size (); ++i)
3   {
4     cloud->points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
5     cloud->points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
6     cloud->points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
7   }

二、点云的转换

//创建
pcl::PointCloud<pcl::PointXYZ> cloud;//点云对象
pcl::PointCloud<pcl::PointXYZ>::Ptr cloudPtr
		(new pcl::PointCloud<pcl::PointXYZ>);//点云指针对象



//转换
cloud = * cloudPtr;
cloudPtr = cloud.makeShared();

猜你喜欢

转载自blog.csdn.net/weixin_44884561/article/details/129048571