WxGL应用实例:绘制点云
WxGL附带了几个工具函数,其中read_pcfile用来解析.ply和.pcd格式的点云文件,该函数返回一个PointCloudData类实例,包含以下属性:
- PointCloudData.ok - 数据是否可用,布尔型
- PointCloudData.info - 数据可用性说明,字符串
- PointCloudData.raw - 解读出来的原始数据,字典
- PointCloudData.fields - 数据字段(项)名称,列表
- PointCloudData.xyz - 点的坐标数据,None或者numpy数组(ndarray)
- PointCloudData.rgb - 点的颜色数据,None或者numpy数组(ndarray)
- PointCloudData.intensity - 点的强度数据,None或者numpy数组(ndarray)
以下代码在IDLE中演示了read_pcfile函数的用法,其中用到的点云文件可从这个地址下载:https://github.com/xufive/wxgl/tree/master/example/res/pointcloud。
>>> import wxgl
>>> ds = wxgl.read_pcfile('/Users/xufive/MyCode/pc/bunny.ply')
>>> ds.ok
True
>>> ds.info
'正常:数据可用'
>>> ds.fields
['x', 'y', 'z', 'confidence', 'intensity']
>>> ds.raw['intensity'].shape
(35947,)
>>> ds.xyz.shape
(35947, 3)
数据解读出来之后,调用app.scatter方法即可绘制出点云模型。
>>> app = wxgl.App()
>>> app.scatter(ds.xyz)
>>> app.show()
这就是大名鼎鼎的斯坦福兔子。模型使用了WxGL自动分配的颜色,也可以使用color参数指定颜色。

通常点云数据不携带颜色信息,但可能包含激光反射强度。如果数据中有颜色信息,或者用强度信息映射为颜色,则需要用户自行判别并在app.scatter方法中提供color(颜色)参数,或者data(数据)和cm(调色板)参数。还有另外一种更简单的方式,那就是直接使用app.pointcloud方法,只需要一个点云文件参数即可绘制出点云模型,该方法会自动识别文件是否包含颜色信息和激光强度信息。
>>> import wxgl
>>> app = wxgl.App(haxis='z', bg='#001020')
>>> app.pointcloud('/Users/xufive/MyCode/pc/isprs/4.pcd', cm='jet')
>>> app.show()
这段代码中的.pcd文件为二进制压缩格式,采用LZF压缩算法。WxGL内置了一个Pytho版的LZF解压缩算法,省去了安装liblzf库的麻烦,但速度较慢。想要更快的速度,请安装python-lzf模块。绘制出来的点云模型使用蓝黑背景,并使用jet调色板将激光反射强度映射为颜色。

相关文章:
WxGL应用实例:绘制点云
WxGL附带了几个工具函数,其中read_pcfile用来解析.ply和.pcd格式的点云文件,该函数返回一个PointCloudData类实例,包含以下属性: PointCloudData.ok - 数据是否可用,布尔型PointCloudData.info - 数据可用性说明&…...
一个月内面了30家公司,薪资从18K变成28K,真行啊····
工作3年,换了好几份工作(行业流行性大),每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心,而且特别不喜欢请假面试,对自己负责也对公司负责。 但是这次没想到市场环境非常不好,…...
《计算机网络——自顶向下方法》精炼——1.4到1.7
三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。 文章目录 引言正文时延排队时延 吞吐量协议层次,服务模型(重点)封装(重点)网络安全(选看)恶意软件的分…...
消息队列 (Message Queue)
消息队列 What 消息队列 是消息的队列;是消息的临时缓冲;是发布/订阅模式的兄弟;在多个进程/线程间实现异步通讯模式。 Why 消息队列在多个进程/线程中实现了异步通讯模式。 这里我们先介绍下同步消息处理。对于同步消息处理࿰…...
JavaScript原型链污染学习记录
1.JS原型和继承机制 0> 原型及其搜索机制 NodeJS原型机制,比较官方的定义: 我们创建的每个函数都有一个 prototype(原型)属性,这个属性是一个指针,指向一个对象, 而这个对象的用途是包含可…...
顶级白帽黑客必备的十大黑客技术
1.熟悉Linux系统和命令行操作: Linux是黑客的基石,几乎所有黑客工具和技术都是在Linux平台上运行的,熟悉Linux系统和命令行操作是必须的。 2.掌握网络协议和TCP/IP模型: 了解TCP/IP模型、网络协议和通信流程是黑客攻击的基础&a…...
【关于认证鉴权一些概念梳理】
关于认证鉴权一些概念梳理 记录一些灵感瞬间聊聊Session,Cookie和Token三剑客的特性前后端分离登录中的springsecurity与不分离的异同三更up关于springSecurity的讲解B站知乎上关于springSecurity的讲解掘金大佬SpringSecurityJWT认证流程解析一个权限对应一个资源&…...
16.网络爬虫—字体反爬(实战演示)
网络爬虫—字体反爬 一字体反爬原理二字体反爬模块FonttoolsTTF文件 三FontCreator 14.0.0.2790FontCreatorPortable下载与安装 四实战演示五后记 前言: 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域…...
BOM概述
目录 什么是BOM 浏览器对象模型(Browser Object Model (BOM)) Window对象 一些常用方法 JavaScript Window Screen Window Screen Window Screen 高度 Window Screen 可用宽度 Window Screen 可用高度 Window Screen 色深 Window Screen 像素深…...
3.Docker实用技术
Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署…...
群体无人机:协同作战的未来
摘要:本文将探讨群体无人机技术的发展及其在多个领域的应用,特别是在军事作战、救援任务和物流方面的潜力。我们将分析群体无人机在协同作战中的优势,以及如何通过协同控制和通信技术实现更高效的任务完成。 内容: 引言 简要介绍…...
如何在Windows AD域中驻留ACL后门
前言 当拿下域控权限时,为了维持权限,常常需要驻留一些后门,从而达到长期控制的目的。Windows AD域后门五花八门,除了常规的的添加隐藏用户、启动项、计划任务、抓取登录时的密码,还有一些基于ACL的后门。 ACL介绍 …...
LVGL移植——stm32f4
LVGL移植说明 移植LVGL版本:8.3.6 主控:STM32F407ZGT6 github链接:https://github.com/lvgl/lvgl.git 文章目录 LVGL移植说明STM32移植LVGL①需要的依赖文件②移植显示驱动文件③将文件加入工程当中④配置心跳④修改栈堆的空间⑤编译链接 STM…...
ASEMI代理ADP5054ACPZ-R7原装ADI车规级ADP5054ACPZ-R7
编辑:ll ASEMI代理ADP5054ACPZ-R7原装ADI车规级ADP5054ACPZ-R7 型号:ADP5054ACPZ-R7 品牌:ADI/亚德诺 封装:LFCSP-48 批号:2023 引脚数量:48 工作温度:-40C~125C 安装类型:表…...
TCP/IP相关面试题
1. 什么是TCP/IP协议?它的作用是什么? TCP/IP(Transmission Control Protocol/Internet Protocol)互联网中最常用的协议,是计算机网络通信的基础。由TCP协议和IP协议两部分组成。IP协议负责数据的传输和路由选择&#…...
MySQL数据库——MySQL存储过程是什么?
我们前面所学习的 MySQL 语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,经常会有需要多条 SQL 语句处理多个表才能完成的操作。 例如,为了确认学生能否毕业,需要同时查询学生档案表、成绩表和综合表&…...
消息队列中的事务消息
大家好,我是易安!今天我们谈一谈消息队列中的事务消息这个话题。 一说起事务,你可能自然会联想到数据库。我们日常使用事务的场景,绝大部分都是在操作数据库的时候。像MySQL、Oracle这些主流的关系型数据库,也都提供了…...
03. 路由参数.重定向.视图
学习要点: 1.路由参数 2.路由重定向 3.路由视图 本节课我们来开始进入学习路由的参数设置、重定向和路由的视图。 一.路由参数 1. 上一节课,我们已经学习了部分路由参数的功能,比如动态传递{id}; 2. 那么,有…...
Flowable入门
Flowable初体验 Flowable是什么 Flowable 是一个使用 Java 编写的轻量级业务流程引擎,常用于需要人工审批相关的业务,比如请假、报销、采购等业务。 为什么要使用工作流呢? 对于复杂的业务流程,通过数据库的状态字段难以控制和…...
Scala Option类型,异常处理,IO,高阶函数
Option类型 实际开发中, 在返回一些数据时, 难免会遇到空指针异常(NullPointerException), 遇到一次就处理一次相对来讲还是比较繁琐的. 在Scala中, 我们返回某些数据时,可以返回一个Option类型的对象来封装具体的数据,从而实现有效的避免空指针异常。S…...
建立情感绑架链:让团队恐惧失去你——软件测试从业者的职场影响力解析
测试工程师的隐形权力困境 在软件研发体系中,测试工程师常陷入价值被低估的困境。当迭代压力激增时,测试周期首当其冲被压缩;当线上出现故障时,测试环节却成为追责焦点。这种结构性矛盾催生出一种特殊的职场生存策略——通过构建…...
vLLM-v0.17.1GPU算力适配:华为昇腾CANN 7.0与vLLM对接可行性验证
vLLM-v0.17.1 GPU算力适配:华为昇腾CANN 7.0与vLLM对接可行性验证 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,由加州大学伯克利分校的天空计算实验室(Sky Computing Lab)最初开发,现已发展成为学术界和工业…...
基于OpenStack的毕业设计:从零搭建私有云平台的入门实战与避坑指南
最近在帮学弟学妹们看毕业设计,发现不少同学对云计算方向很感兴趣,尤其是想用OpenStack做个私有云平台。但一上手就懵了,组件多、文档杂,环境动不动就崩,最后时间都花在折腾部署上了。我自己当初也踩过不少坑ÿ…...
Rasa Pro企业级对话AI实战:从安全扫描到密钥管理的完整配置指南
Rasa Pro企业级对话AI实战:从安全扫描到密钥管理的完整配置指南 在金融行业数字化转型浪潮中,智能对话系统已成为客户服务的核心组件。作为Rasa的商业化企业版本,Rasa Pro凭借其专业级的安全防护和可观测性功能,正在成为银行、保险…...
System Verilog实战解析——always_comb中的阻塞赋值与电路行为建模
1. always_comb基础概念与特性 always_comb是SystemVerilog中专门用于描述组合逻辑电路的关键字。与传统的always块不同,它不需要显式指定敏感列表,编译器会自动推导所有读取的信号作为敏感列表。我在实际项目中发现,这个特性可以避免手动维护…...
LaTeX参考文献报错全解析:从\citation到\bibdata的避坑指南
LaTeX参考文献报错全解析:从\citation到\bibdata的避坑指南 当你熬夜赶论文时,突然在编译LaTeX文档时看到一串红色报错:"I found no \bibstyle command"、"I found no \bibdata command"、"I found no \citation co…...
Seed-Coder-8B-Base体验报告:这个开源代码模型到底强在哪里?
Seed-Coder-8B-Base体验报告:这个开源代码模型到底强在哪里? 1. 开篇:为什么选择Seed-Coder-8B-Base 在代码生成模型的海洋中,Seed-Coder-8B-Base以其独特的优势脱颖而出。作为字节团队开源的8B参数级模型,它不仅体积…...
CosyVoice 2 目标音色替换技术解析:从原理到小白友好实现
音色替换,简单说就是让一段语音听起来像是另一个人在说话,但内容不变。这技术现在需求挺多的,比如虚拟主播、有声书、游戏角色配音,甚至一些辅助沟通的场景。但说实话,以前想自己搞一个,门槛不低。要么效果…...
感性负载续流二极管设计与选型指南
1. 感性负载驱动电路中的续流二极管设计1.1 电感特性与瞬态响应电感作为基础电子元件,其核心特性是阻碍电流变化。当恒定电流通过电感时,它表现为普通导线;但当电流变化时,电感会产生感应电动势(EMF)来抵抗这种变化。在电路断开瞬…...
网页设计毕业设计选题指南:从零构建一个响应式个人作品集网站
作为一名即将毕业的计算机相关专业学生,你是否正为“网页设计”这门课的毕业设计选题而头疼?选题太简单,显得没技术含量;选题太复杂,又怕自己搞不定,最后做出一个只能在老师电脑上运行的“演示即崩溃”项目…...
