如何访问PCLPORTCLOUD2类型中的点

how to access a point in the type of PCLPointCloud2

本文关键字:类型 PCLPORTCLOUD2 何访问 访问      更新时间:2023-10-16

通过以下代码从stl文件'sphere.stl'获得点云是正确的吗?

pcl::PolygonMesh mesh;
pcl::io::loadPolygonFileSTL("sphere.stl", mesh);
pcl::PCLPointCloud2::Ptr ThisCloud = boost::make_shared<pcl::PCLPointCloud2>(mesh.ThisCloud);

那么,如何访问" thiscloud"的每个点?

我认为我将pcl::PCLPointCloud2转换为 pcl::PointCloud<PointXYZ>

...
// conversion
pcl::PointCloud<pcl::PointXYZ>::Ptr vertices( new pcl::PointCloud<pcl::PointXYZ> );
pcl::fromPCLPointCloud2( mesh.cloud, *vertices ); 
// access each vertex 
for( int idx = 0; idx < vertices->size(); idx++ )
{
   pcl::PointXYZ v = vertices->points[ idx ];
   float x = v._PointXYZ::data[ 0 ];
   float y = v._PointXYZ::data[ 1 ];
   float z = v._PointXYZ::data[ 2 ];
}