pclpy 读取、显示、保存点云

x33g5p2x  于2021-10-07 转载在 其他  
字(1.6k)|赞(0)|评价(0)|浏览(2561)

一、概述

pclpy是点云库PCL的python实现,pclpy自带的点云读取函数不支持读取中文路径下的点云,pclpy包含laspy,因此pclpy支持处理las格式的点云。

1、读取点云

方式1:

  1. cloud = pcl.PointCloud.PointXYZ()
  2. # 读取点云数据
  3. pcl.io.loadPCDFile('bunny.pcd', cloud)

方式2:

  1. # 加载点云
  2. cloud = pcl.PointCloud.PointXYZ()
  3. reader = pcl.io.PCDReader()
  4. reader.read("bunny.pcd", cloud)

2、显示点云

python显示的方式很多,pclpy的显示方式也是多种多样,这里仅展示一种最简单的可视化方式。

  1. viewer = pcl.visualization.CloudViewer("viewer")
  2. viewer.showCloud(cloud, "sample cloud") # 显示点云
  3. while not viewer.wasStopped(10):
  4. pass

3、保存点云

方式1

  1. pcl.io.savePCDFile("11.pcd", cloud) # 默认方式
  2. pcl.io.savePCDFileASCII("11.pcd", cloud) # ASCII
  3. pcl.io.savePCDFileBinary("11.pcd", cloud) # 二进制
  4. pcl.io.savePCDFileBinaryCompressed("11.pcd", cloud) # 压缩

方式2

  1. writer = pcl.io.PCDWriter()
  2. writer.write("rs.pcd", cloud_filtered)

writer函数一共有132种重载方式,感兴趣的可打开PCDWriter.py进行查看。

二、代码实现

  1. from pclpy import pcl
  2. # 创建XYZ格式的点云
  3. cloud = pcl.PointCloud.PointXYZ()
  4. # ---------------读取点云数据-----------------
  5. pcl.io.loadPCDFile('bunny.pcd', cloud)
  6. # -----------------显示点云-------------------
  7. pcl.filters.CovarianceSampling
  8. viewer = pcl.visualization.CloudViewer("viewer")
  9. viewer.showCloud(cloud, "sample cloud") # 显示点云
  10. while not viewer.wasStopped(10):
  11. pass
  12. # -----------------保存点云-------------------
  13. # 方式1
  14. pcl.io.savePCDFile("11.pcd", cloud) # 默认方式
  15. pcl.io.savePCDFileASCII("12.pcd", cloud) # ASCII
  16. pcl.io.savePCDFileBinary("13.pcd", cloud) # 二进制
  17. pcl.io.savePCDFileBinaryCompressed("14.pcd", cloud) # 压缩
  18. # 方式2
  19. writer = pcl.io.PCDWriter()
  20. writer.write("15.pcd", cloud)

三、结果展示

四、相关链接

[1] WIN10系统下python快速安装点云库pclpy-0.11.0

五、测试数据

Open3D算法测试数据.rar

相关文章