Python-PCL笔记 -1 Intro

写在最前面:有Intel的加持估计日后在3D视觉领域open3d会更加流行,毕竟PCL基本上不维护了。

PCL作为一款非常成熟的开源资源,被行业广泛使用于处理点云的方方面面。
现有的学习材料大部分都是基于C++, 对于习惯了python的我来说虽然读代码没有问题,但是写起来还是困难重重。
这个笔记记录了使用 Python-PCL 的各种心得。

安装Python-PCL (Windows10+Pycharm+Anaconda)

  1. 快捷方法(推荐:不要耗费宝贵的时间)

    1. 一键下载所需程序 (AllinonePCL1.9.1 + Anaconda配置环境+安装说明)
      下载链接:
    2. 安装pcl,建议安装在D盘,需要注意一点:在安装过程中,会让你安装一个第三方库OpenNI2,它会另让你选择安装目录,你首先在上图的3rdParty中新建一个OpenNI2文件夹,然后安装时选择这个文件夹就可以。*安装OpenNI2时可能出现一个环境变量太长的警告,我们可以忽视,直接在下一步修正这个错误。
    3. 参考安装说明进行系统变量设置
    4. 应用编译好的python环境,在anaconda+pycharm环境下进行。 把配置好的python-pcl环境-dhe解压后,直接放在anaconda安装目录中的envs文件夹下,然后在Pycharm里面的设定里面指定dhe里面的python.exe为解释器, 只要你第二步第三步的pcl及其变量没有问题就可以用了。
      *详细的说明在安装说明里面
  2. 网上的方法(包括strawlab大神的官方方法)我都没有试验成功。https://github.com/strawlab/python-pcl

  3. 测试

    1. 生成一个随机点云,保存为 test.pcd,然后可视化。
import numpy as np
import pcl.pcl_visualization

def generate_points():  #产生1000个随机点
    points = np.zeros((1000, 3)) #建立一个1000*3的矩阵
    for i in range(len(points)):  #给矩阵赋随机值
        points[i][0] = np.random.rand(1)
        points[i][1] = np.random.rand(1)
        points[i][2] = np.random.rand(1)
    return points
    
if __name__ == '__main__':
    points = generate_points()
    print(points)
    cloud = pcl.PointCloud() # 定义点云为 pointcloud形式
    cloud.from_array(np.array(points, dtype=np.float32)) #把生成的随机点加入点云
    pcl.save(cloud,"test_point_cloud.pcd")  #存储点云为 test_point_cloud.pcd
    visual = pcl.pcl_visualization.CloudViewing()
    visual.ShowMonochromeCloud(cloud, b'cloud') #可视化点云
    view = True
    while view:
        view = not (visual.WasStopped())

1000个随机点的可视化结果如下所示:
Python-PCL笔记 -1 Intro_第1张图片

你可能感兴趣的:(PCL)