Point Cloud Library (PCL) for Python - pclpy 安装指南 (2)

Point Cloud Library (PCL) for Python - pclpy 安装指南 (1)

  1. 导入库

    python 复制代码
    from pclpy import pcl
    import numpy as np

    导入pclpy库中的pcl模块,用于处理点云数据。numpy库用于处理数值数据。

  2. 读取点云

    python 复制代码
    cloud = pcl.PointCloud.PointXYZRGB()
    pcl.io.loadPCDFile('F:\\bunny.pcd', cloud)
    • cloud = pcl.PointCloud.PointXYZRGB():创建一个存储点云数据的对象,类型为PointXYZRGB,即包含颜色信息的点云。
    • pcl.io.loadPCDFile('F:\\bunny.pcd', cloud):从指定路径加载PCD文件,并将数据存储到cloud对象中。
  3. 打印点云信息

    python 复制代码
    print('读取点云的点数为:', cloud.size())
    print('点云坐标为:', np.asarray(cloud.xyz))
    • cloud.size():获取点云中的点数。
    • np.asarray(cloud.xyz):将点云坐标转换为numpy数组,并打印出来。
  4. 可视化点云

    python 复制代码
    viewer = pcl.visualization.PCLVisualizer("3D Viewer")
    viewer.setBackgroundColor(0, 0, 0)
    rgb = pcl.visualization.PointCloudColorHandlerRGBField.PointXYZRGB(cloud)
    viewer.addPointCloud(cloud, rgb)
    • viewer = pcl.visualization.PCLVisualizer("3D Viewer"):创建一个可视化对象,窗口名为"3D Viewer"。
    • viewer.setBackgroundColor(0, 0, 0):设置窗口背景颜色为黑色。
    • rgb = pcl.visualization.PointCloudColorHandlerRGBField.PointXYZRGB(cloud):获取点云的颜色信息。
    • viewer.addPointCloud(cloud, rgb):将点云和颜色信息添加到可视化对象中。
  5. 添加坐标系和初始化相机参数

    python 复制代码
    viewer.addCoordinateSystem(1.0)
    viewer.initCameraParameters()
    • viewer.addCoordinateSystem(1.0):在可视化窗口中添加一个坐标系,便于观察点云的方向和位置。
    • viewer.initCameraParameters():初始化相机参数,使得初始视角更合理。
  6. 循环展示

    python 复制代码
    while not viewer.wasStopped():
        viewer.spinOnce(10)
    • while not viewer.wasStopped():循环检查窗口是否被关闭。
    • viewer.spinOnce(10):更新可视化窗口,参数10表示每次循环的时间间隔(毫秒)。
  7. 完整代码

    python 复制代码
    from pclpy import pcl
    import numpy as np
    
    def main():
        cloud = pcl.PointCloud.PointXYZRGB()
        pcl.io.loadPCDFile('F:\\bunny.pcd', cloud)
        
        print('Number of points in the point cloud:', cloud.size())
        print('Point cloud coordinates:', np.asarray(cloud.xyz))
    
        viewer = pcl.visualization.PCLVisualizer("3D Viewer")
        viewer.setBackgroundColor(0, 0, 0)
        rgb = pcl.visualization.PointCloudColorHandlerRGBField.PointXYZRGB(cloud)
        viewer.addPointCloud(cloud, rgb)
    
        while not viewer.wasStopped():
            viewer.spinOnce(10)
    
    if __name__ == '__main__':
        main()
  1. PCD文件

    下载PCD文件

相关推荐
贤哥哥yyds9 分钟前
GBK转UTF\-8编码自动转换工具 使用文档
python
数量技术宅18 分钟前
2026量化前沿:从Reddit热帖到Python实战,如何用赫斯特指数(Hurst)狙击虚假突破?
开发语言·python
comcoo24 分钟前
电脑自动干活不用值守!OpenClaw 本地部署完整实操流程
windows·开源·github·open claw部署·open claw部署包
华如锦25 分钟前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai
huangdong_27 分钟前
电商商品SKU图自动分类技术实现:从DOM解析到智能归档
开发语言
dog25030 分钟前
网络长尾延时的重尾本质
开发语言·网络·php
戴西软件43 分钟前
戴西 DLM 许可授权管理系统:破解无网络环境下工业软件授权难题,助力制造企业降本增效
网络·人工智能·python·深度学习·程序人生·算法·制造
Dxy12393102161 小时前
Python线程锁:为什么多线程会“打架“,以及怎么解决
开发语言·前端·python
guygg881 小时前
人行走作用下板的振动响应 MATLAB 仿真
开发语言·matlab
小白学大数据1 小时前
线上故障急救:依托 OpenClaw 日志排查 403 和 503 问题
爬虫·python·selenium·数据分析