当前位置: 首页 > news >正文

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

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

      • 一、算法原理
      • 二、代码
      • 三、结果
          • 1.多窗口可视化结果
          • 2.单窗口多点云可视化
      • 四、相关数据
      • 五、问题与解决方案
          • 1.问题
          • 2.解决

一、算法原理

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

二、代码

from pclpy import pcldef multiCloudShow(cloud1, cloud2):"""Args:多点云可视化在同一个窗口cloud1:  点云数据cloud2:  点云数据"""viewer = pcl.visualization.PCLVisualizer("viewer")  # 建立可刷窗口对象 窗口名 viewersingle_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: 点云数据1cloud2: 点云数据2"""viewer = pcl.visualization.PCLVisualizer("viewer")  # 建立可刷窗口对象 窗口名 viewerv0 = 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.解决

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

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

相关文章:

  • Nginx网络服务
  • python 几种常见的音频数据读取、保存方式
  • React setState同步还是异步
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • 【springBoot】springAOP
  • 信息学奥赛一本通1209:分数求和
  • 【智慧零售】门店管理设备解决方案,为企业数字化运营升级赋能
  • 逻辑回归算法概述
  • Ubuntu20.04 屏幕截图快捷键
  • GptSoVits音频教程
  • 设计模式-创建型模式-原型模式
  • 宏观视角下的浏览器
  • Selenium定位不到元素怎么办?一定要这么做
  • 电路设计(26)——速度表的multisim仿真
  • 计算机设计大赛 深度学习卷积神经网络的花卉识别
  • 345-反转字符串中的元音字母
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Elasticsearch 参考指南(升级前重新索引)
  • es的写入过程
  • JavaScript服务器推送技术之 WebSocket
  • Mocha测试初探
  • React as a UI Runtime(五、列表)
  • Swift 中的尾递归和蹦床
  • Vue.js 移动端适配之 vw 解决方案
  • Webpack 4 学习01(基础配置)
  • 反思总结然后整装待发
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 追踪解析 FutureTask 源码
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 函数计算新功能-----支持C#函数
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​configparser --- 配置文件解析器​
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • (06)金属布线——为半导体注入生命的连接
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (ZT)薛涌:谈贫说富
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (三十五)大数据实战——Superset可视化平台搭建
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET gRPC 和RESTful简单对比
  • .NET 中创建支持集合初始化器的类型
  • .NET的微型Web框架 Nancy
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [Angularjs]ng-select和ng-options
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [codeforces]Levko and Permutation
  • [hdu1561] The more, The Better 【树形DP】
  • [iOS]把16进制(#871f78)颜色转换UIColor
  • [JDK工具-2] javap 类文件解析工具-帮助理解class文件,了解Java编译器机制