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


一、点云的创建与访问

第一种,是一种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的坐标值。

第二种,指针型类模板,采用“->points[i]”方式赋值。

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();

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM