首页 > 解决方案 > 有没有办法从 std::istream 获取 pcl 点云而不是文件名

问题描述

我想从 istream 输出 pcl 点云(直接从服务器读取的 ply 文件,不能保存在本地)。如果有办法实现这一目标,任何人都可以提供帮助吗?

我很熟悉,pcl::io::loadPLYFile<pcl::PointXYZRGBA>(std::string fname, *cloud);但我正在寻找的功能是xxxx(std::istream, *cloud);我尝试在 github 中查看 pcl 的代码库但无法到达任何地方的形式!:(

标签: c++point-cloud-library

解决方案


我认为 PCL 没有一项功能可以满足您的要求。但是查看.ply 文件格式,我建议您执行以下操作

  1. 逐行浏览文件
  2. 找到element vertex X后,保留数字X
  3. 找到后,开始从下一行到下一行end_header读取顶点值(我猜是 xyzrgba 的顺序)X
  4. 将读取值分配给您创建的点云

推荐阅读