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.解决

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESP8266智能家居(3)——单片机数据发送到mqtt服务器

1.主要思想 前期已学习如何用ESP8266连接WIFI,并发送数据到服务器。现在只需要在单片机与nodeMCU之间建立起串口通信,这样单片机就可以将传感器测到的数据:光照,温度,湿度等等传递给8266了,然后8266再对数据…

【AI应用】SoraWebui——在线文生视频工具

SoraWebui 是一个开源项目,允许用户使用 OpenAI 的 Sora 模型使用文本在线生成视频,从而简化视频创建,并具有轻松的一键网站部署功能 在 Vercel 上部署 1. 克隆项目 git clone gitgithub.com:SoraWebui/SoraWebui.git 2. 安装依赖 cd Sor…

【Java EE初阶二十】http的简单理解(一)

1. 初识http HTTP 最新的版本应该是 HTTP/3.0,目前大规模使用的版本 HTTP/1.1; 下面来简单说明一下使用 HTTP 协议的场景: 1、浏览器打开网站 (基本上) 2、手机 APP 访问对应的服务器 (大概率) 前面的 TCP与UDP 和http不同,HTTP 的报文格式&a…

React基础-webpack+creact-react-app创建项目

学习视频:学习视频 2节:webpack工程化创建项目 2.1.webpack工程化工具:vite/rollup/turbopak; 实现组件的合并、压缩、打包等; 代码编译、兼容、校验等; 2.2.React工程化/组件开发 我们可以基于webpack自己去搭建…

sql-labs25-28a

一、环境 网上都有不过多阐述 二、sql-labs第25关 它说你的OR和and属于它,那就是过滤了OR和and 注入尝试 不用or和and进行爆破注入,很明显是有注入点的 ?id-1 union select 1,2,3-- 查看数据库 ok,此道题算是解了但是如果我们用了and了呢 ?id-1 and updatex…

浅谈集群的分类

本文主要介绍集群部署相关的知识,介绍集群部署的基础,集群的分类、集群的负载均衡技术,集群的可用性以及集群的容错机制。随后介绍Redis-Cluster以及Mysql的架构以及主从复制原理。 集群介绍 单台服务器本身会受到带宽、内存、处理器等多方面…

STM32-串口通信(串口的接收和发送)

文章目录 STM32的串口通信一、STM32里的串口通信二、串口的发送和接收串口发送串口接收 三、串口在STM32中的配置四、串口接收的两种实现方式1. 需要更改的地方2. 查询RXNE标志位3. 使用中断 总结 STM32的串口通信 本文在于记录自己的学习过程中遇到的问题和总结,各…

大型语言模型的语义搜索(一):关键词搜索

关键词搜索(Keyword Search)是文本搜索种一种常用的技术,很多知名的应用app比如Spotify、YouTube 或 Google map等都会使用关键词搜索的算法来实现用户的搜索任务,关键词搜索是构建搜索系统最常用的方法,最常用的搜索算法是Okapi BM25&#x…

Liunx使用nginx和http搭建yum-server仓库

文章目录 1. yum-server的搭建方式2. nginx搭建yum-server仓库2.1. 安装配置nginx2.2 配置yum-server的rpm2.3. 同步yum源相关包2.3.1 rsync同步源3.3.1 reposync同步源 2.4. 配置客户端访问yum配置2.5. 验证测试 3. http服务搭建yum-server仓库3.1. 安装配置http3.2 配置yum-s…

Firewalld防火墙

Firewalld概述 Firewalld firewalld防火墙是centos7系统默认防火墙的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具至此IPv4、IPv6…

studio one 6正版多少钱?怎么购买studio one 更便宜,有优惠券哦

Presonus Studio One Studio One是由美国PreSonus公司开发的数字音频工作站,作为DAW届的新人,功能强大且全面,虽然它不像其他DAW那样拥有历史和声誉,但它是一个可爱的软件,包含许多其它DAW所不具备的实用功能&#xff…

web基础及http协议 (二)----------Apache相关配置与优化

一、httpd 安装组成 http 服务基于 C/S 结构 1 .常见http 服务器程序 httpd apache,存在C10K(10K connections)问题 nginx 解决C10K问题lighttpd IIS .asp 应用程序服务器 tomcat .jsp 应用程序服务器 jetty 开源的servlet容器&#xf…

选择 Python IDE(VSCode、Spyder、Visual Studio 2022和 PyCharm)

前言 当选择 Python 开发工具时,你需要考虑自己的需求、偏好和项目类型。下面是对VSCode、Spyder、Visual Studio 2022和 PyCharm的对比推荐总结: 结论 1、如果你专注于“数据科学”,选择SpyDer没错。 内容 Visual Studio Code (VS Code)…

CleanMyMac2024苹果电脑清理工具最新使用全面评价

作为软件评价专家,我对CleanMyMac X进行了全面的评估,以下是我的详细评价: CleanMyMac X4.14.6全新版下载如下: https://wm.makeding.com/iclk/?zoneid49983 一、功能 CleanMyMac X的功能相当全面,几乎涵盖了Mac电脑清理所需的…

nginx 具体介绍

一,nginx 介绍 (一)nginx 与apache 1, Apache event 模型 相对于 prefork 模式 可以同时处理更多的请求 相对于 worker 模式 解决了keepalive场景下,长期被占用的线程的资源浪费问题 因为有监听线程&#…

【数据结构】链式队列

链式队列实现&#xff1a; 1.创建一个空队列 2.尾插法入队 3.头删法出队 4.遍历队列 一、main函数 #include <stdio.h> #include "./3.linkqueue.h" int main(int…

运维SRE-19 网站Web中间件服务-http-nginx

Ans自动化流程 1.网站集群核心协议&#xff1a;HTTP 1.1概述 web服务&#xff1a;网站服务&#xff0c;网站协议即可. 协议&#xff1a;http协议,https协议 服务&#xff1a;Nginx服务&#xff0c;Tengine服务....1.2 HTTP协议 http超文本传输协议&#xff0c;负责数据在网站…

更高效的构建工具-vite

更高效的构建工具-vite 前言Vite是什么Vite和webpack的比较1. 运行原理2. 使用成本 Vite的初体验 前言 首先我们要认识什么时构建工具&#xff1f; 企业级项目都具备什么功能呢&#xff1f; Typescript&#xff1a;如果遇到ts文件&#xff0c;我们需要使用tsc将typescript代码…

Android约束布局中用ConstraintHelper实现过渡动画效果

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 一.创建一个类CircularRevealHelper继承ConstraintHelper代码如下 /*** Author: ly* Da…

【Linux从青铜到王者】 基础IO

本篇重点&#xff1a;文件描述符&#xff0c;重定向&#xff0c;缓冲区&#xff0c;磁盘结构&#xff0c;文件系统&#xff0c;inode理解文件的增删查改&#xff0c;查找一个文件为什么一定要有路径&#xff0c;动静态库&#xff0c;有的时候为什么找不到库&#xff0c;动态库的…