pclpy 读取、显示、保存点云

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

一、概述

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

1、读取点云

方式1:

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

方式2:

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

2、显示点云

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

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

3、保存点云

方式1

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

方式2

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

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

二、代码实现

from pclpy import pcl

# 创建XYZ格式的点云
cloud = pcl.PointCloud.PointXYZ()
# ---------------读取点云数据-----------------
pcl.io.loadPCDFile('bunny.pcd', cloud)
# -----------------显示点云-------------------
pcl.filters.CovarianceSampling
viewer = pcl.visualization.CloudViewer("viewer")
viewer.showCloud(cloud, "sample cloud")  # 显示点云

while not viewer.wasStopped(10):
    pass
# -----------------保存点云-------------------
# 方式1
pcl.io.savePCDFile("11.pcd", cloud)  # 默认方式
pcl.io.savePCDFileASCII("12.pcd", cloud)  # ASCII
pcl.io.savePCDFileBinary("13.pcd", cloud)  # 二进制
pcl.io.savePCDFileBinaryCompressed("14.pcd", cloud)  # 压缩
# 方式2
writer = pcl.io.PCDWriter()
writer.write("15.pcd", cloud)

三、结果展示

四、相关链接

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

五、测试数据

Open3D算法测试数据.rar

相关文章