一、安装Anaconda3
二、pclpy概述
pclpy是点云库(PCL)的Python绑定。使用CppHeaderParser和pybind11从头文件生成。这个库正在积极开发中,目前Windows只支持python 3.6 x64,所包含的模块确实可以工作,但还够不完整。
目前,pclpy库已更新到了0.12.0版本,最新版的0.12.0与0.11.0版本相比,不仅没有新增API,反而移除了可视化模块。并且强大的PyPI网站也仅支持0.11.0版本pclpy的安装。在使用过程中发现,pclpy-0.11.0的IO、点云滤波、点云特征、可视化、RANSAC、点云分割等可用模块的函数对应于C++版本的PCL1.8.1。因此,安装pclpy-0.11.0即可基本满足基于PCL点云处理的需求。
三、安装pclpy
使用python玩转点云,open3d最起码得有,本人open3d是用Anaconda3安装的(见:Open3D-0.13.0 python版本的快速安装与使用)。因此,pclpy也用Anaconda3安装。(其他安装方法再好,我也不感兴趣,不喜欢,不考虑!!!)
1、使用Anconda创建python 3.6的虚拟环境进行测试
conda create -n pclpy11 python=3.6 # 创建新的虚拟环境
conda activate pclpy11 # 激活环境
2、下载安装0.11.0版本,注意使用pip下载,使用国内镜像下载更快:
pip install pclpy==0.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
四、测试代码
from pclpy import pcl
import numpy as np
# ----------------------读取点云------------------------
cloud = pcl.PointCloud.PointXYZRGB()
pcl.io.loadPCDFile('tree.pcd', cloud)
print('读取点云的点数为:', cloud.size())
print('前10个点的坐标为为:', np.asarray(cloud.xyz)[:10])
# -----------------------可视化------------------------
viewer = pcl.visualization.PCLVisualizer("3D viewer")
viewer.setBackgroundColor(0, 0, 0)
rgb = pcl.visualization.PointCloudColorHandlerRGBField.PointXYZRGB(cloud)
viewer.addPointCloud(cloud, rgb, "sample cloud")
viewer.setPointCloudRenderingProperties(0, 1, "sample cloud")
# viewer.addCoordinateSystem(1)
# viewer.initCameraParameters()
while not viewer.wasStopped():
viewer.spinOnce(10)
五、结果展示
读取点云的点数为: 13974
前10个点的坐标为为: [[271.8155 111.153 -1.6177]
[271.8252 111.1567 -1.5996]
[271.3169 110.6379 -2.7237]
[271.8002 111.1459 -1.7226]
[271.8111 111.1511 -1.7018]
[271.8207 111.153 -1.6842]
[271.8331 111.1598 -1.6605]
[271.8426 111.1628 -1.6427]
[271.8551 111.1491 -1.6248]
[271.3253 110.6564 -2.7807]]
六、进入pclpy11环境
单独对该环境内的库进行安装、更新时用。
conda activate pclpy11