pclpy 可视化点云(多窗口可视化、单窗口多点云可视化)

一、算法原理

原理看一下代码写的很仔细的。。目前在同一个窗口最多建立2个窗口。
多数据可视化把点云的名字更改一下即可,就在一个窗口下可视化多个点云。

二、代码

from pclpy import pcl

def multiCloudShow(cloud1, cloud2):
    """
    Args:多点云可视化在同一个窗口
        cloud1:  点云数据
        cloud2:  点云数据
    """
    viewer = pcl.visualization.PCLVisualizer("viewer")  # 建立可刷窗口对象 窗口名 viewer
    single_color = pcl.visualization.PointCloudColorHandlerCustom.PointXYZ(cloud1, 255.0, 0, 0.0)  # 将点云设置为红色
    viewer.addPointCloud(cloud1,  # 要添加到窗口的点云数据。
                         single_color,  # 指定点云的颜色
                         "sample cloud1",  # 添加的点云命名
                        )  # 点云添加到的视图

    single_color = pcl.visualization.PointCloudColorHandlerCustom.PointXYZ(cloud2, 0.0, 255.0, 0.0)  # 将点云设置为绿色
    viewer.addPointCloud(cloud2,  # 要添加到窗口的点云数据。
                         single_color,  # 指定点云的颜色
                         "sample cloud2",  # 添加的点云命名
                         )  # 点云添加到的视图

    # 窗口建立
    while not viewer.wasStopped():
        viewer.spinOnce(10)

def compareCloudShow(cloud1, cloud2):
    """
    Args:在一个窗口生成2个窗口可视化点云
        cloud1: 点云数据1
        cloud2: 点云数据2
    """
    viewer = pcl.visualization.PCLVisualizer("viewer")  # 建立可刷窗口对象 窗口名 viewer
    v0 = 1  # 设置标签名(0, 1标记第一个窗口)
    viewer.createViewPort(0.0, 0.0, 0.5, 1.0, v0)  # 创建一个可视化的窗口
    viewer.setBackgroundColor(0.0, 0.0, 0.0, v0)  # 设置窗口背景为黑色
    single_color = pcl.visualization.PointCloudColorHandlerCustom.PointXYZ(cloud1, 255.0, 0, 0.0)  # 将点云设置为红色
    viewer.addPointCloud(cloud1,          # 要添加到窗口的点云数据。
                         single_color,    # 指定点云的颜色
                         "sample cloud1",  # 添加的点云命名
                         v0)  # 点云添加到的视图

    v1 = 2  # 设置标签名(2代表第二个窗口)
    viewer.createViewPort(0.5, 0.0, 1.0, 1.0, v1)  # 创建一个可视化的窗口
    viewer.setBackgroundColor(255.0, 255.0, 255.0, v1)  # 设置窗口背景为白色
    single_color = pcl.visualization.PointCloudColorHandlerCustom.PointXYZ(cloud2, 0.0, 255.0, 0.0)  # 将点云设置为绿色
    viewer.addPointCloud(cloud2,  # 要添加到窗口的点云数据。
                         single_color,  # 指定点云的颜色
                         "sample cloud2",  # 添加的点云命名
                         v1)  # 点云添加到的视图

    # 设置点云窗口(可移除对点云可视化没有影响)
    viewer.setPointCloudRenderingProperties(0,  # 设置点云点的大小
                                            1,  # 点云像素
                                            "sample cloud1",  # 识别特定点云
                                            v0)  # 在那个窗口可视化
    viewer.setPointCloudRenderingProperties(0,  # 设置点云点的大小
                                            1,  # 点云像素
                                            "sample cloud2",  # 识别特定点云
                                            v1)  # 在那个窗口可视化
    viewer.addCoordinateSystem(1.0)  # 设置坐标轴 坐标轴的长度为1.0
    # 窗口建立
    while not viewer.wasStopped():
        viewer.spinOnce(10)


if __name__ == '__main__':
    # 读取一个点云
    cloud1 = pcl.PointCloud.PointXYZ()
    reader = pcl.io.PCDReader()  # 设置读取对象
    reader.read('res/bunny.pcd', cloud1)  # 读取点云保存在cloud中
    # 读取一个点云
    cloud2 = pcl.PointCloud.PointXYZ()
    reader = pcl.io.PCDReader()  # 设置读取对象
    reader.read('res/table_scene_lms400.pcd', cloud2)  # 读取点云保存在cloud中
    multiCloudShow(cloud1, cloud2)  # 一个窗口可视化多个点云

三、结果

1.多窗口可视化结果

在这里插入图片描述

2.单窗口多点云可视化

在这里插入图片描述

四、相关数据

测试数据链接:https://pan.baidu.com/s/1am-4qlxuX_l6uoDeIbpPrA
提取码:ffs2

五、问题与解决方案

1.问题

在这里插入图片描述

2.解决

报错原因:添加到可视化窗口的的点云名重复

解决:更改点云名在窗口的名即可

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
点云(Point Cloud)是由大量离散构成的模型表示对象表面的数据集合,常用于三维建模和视觉感知。批量可视化点云bin是指对多个点云二进制文件(.bin格式)进行可视化处理。 在进行批量可视化点云bin之前,首先需要加载点云数据。可以使用相关的点云处理库,如PCL(点云库)或Open3D(开源三维库),通过读取二进制文件并将其解析为点云数据结构。 接下来,可以使用可视化库来将点云数据可视化PCL和Open3D都提供了点云可视化的功能。使用这些库的接口,可以将点云数据以三维形式呈现出来,从而可以进行旋转、缩放和平移等操作,以便更好地观察点云。 批量可视化点云bin的具体步骤如下: 1. 导入点云库:首先需要在代码中引入相应的点云库,如PCL或Open3D。 2. 读取点云数据:使用点云库提供的函数读取二进制文件,并将其解析为点云数据结构。 3. 创建可视化窗口:使用点云库提供的函数创建一个或多个可视化窗口,用于显示点云数据。 4. 添加点云数据到窗口:使用点云库提供的函数将解析后的点云数据添加到可视化窗口中。 5. 设置可视化参数:可以设置点云的颜色、大小、透明度等参数,以便更好地展示点云数据。 6. 显示点云数据:通过调用可视化库提供的函数,将点云数据在可视化窗口中进行展示。 7. 循环处理:如果有多个点云二进制文件需要处理,则可以通过循环读取和可视化不同的文件,一次显示一个点云。 以上就是批量可视化点云bin的基本步骤。通过这些步骤,我们可以方便地对多个点云二进制文件进行可视化处理,以便更好地理解和分析点云数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云杂项

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值