python对点云可视化设置颜色

       

1、背景介绍

      点云分类/分割时,常需要对分类结果进行可视化,其中给点云赋予不同颜色是一种最直接方法。介绍基于python中matplotlib进行点云颜色渲染显示。

2、点云颜色渲染

2.1 有限种颜色渲染

      matplotlib在点云颜色渲染时,使用表示颜色的关键词来表示,如scatter为常见可视化函数,其中表示颜色的关键词有限,如下所示:

  • ‘red’:红色
  • ‘blue’:蓝色
  • ‘green’:绿色
  • ‘yellow’:黄色
  • ‘purple’:紫色
  • ‘orange’:橙色
  • ‘cyan’:青色
  • ‘magenta’:品红色
  • ‘pink’:粉红色
  • ‘black’:黑色
  • ‘white’:白色
  • ‘gray’ 或 ‘grey’:灰色
  • ‘brown’:棕色
scatter(xarr, yarr, c='brown', marker='.')

  2.1.1 三维空间有限颜色渲染

       需要说明的是,使用   ax.scatter(xarr, yarr, c='brown', marker='.')命令进行点云可视化,其可以同时可视化二维与三维。   可视化结果与代码如下:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号with open('E:\\工.txt', 'r') as file:# 初始化一个列表来存储所有的点points3D = []# 逐行读取数据for line in file:# 去除行尾的换行符并分割字符串x, y, z= line.strip().split(',')# 将字符串转换为浮点数x = float(x)y = float(y)z = float(z)# 将点添加到列表中points3D.append((x, y, z))
xarr,yarr,zarr=zip(*points3D)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# ax.scatter(xarr, yarr, zarr, c='brown', marker='.')
ax.scatter(xarr, yarr, c='red', marker='.')#显示红色
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')# 显示图形
plt.show()
三维可视化二维可视化

  2.1.2 二维(平面)空间有限颜色渲染

       若只对其进行二维可视化(投影到水平面上),需要如下效果,则可以使用plt.scatter()函数

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号points2D=[]
x_arr=[]
y_arr=[]
with open('E:\\工.txt', 'r') as file:# 初始化一个列表来存储所有的点points2D = []color_arr=[]xarr=[]yarr=[]zarr=[]# 逐行读取数据for line in file:# 去除行尾的换行符并分割字符串x, y, z= line.strip().split(',')# 将字符串转换为浮点数x = float(x)y = float(y)z = float(z)points2D.append((x,y))color_arr.append((0.0,1.0,0.0))xarr.append(x)yarr.append(y)zarr.append(z)plt.scatter(*zip(*points2D), marker='o', color='blue',s=5)
# 显示图表
plt.show()

2.2 任意颜色渲染

2.2.1 三维空间任意颜色渲染

    上述介绍的是有限种颜色渲染,任意颜色渲染,若是三维空间,则可以按照如下代码:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号points2D=[]
x_arr=[]
y_arr=[]
with open('E:\\工.txt', 'r') as file:# 初始化一个列表来存储所有的点points2D = []color_arr=[]xarr=[]yarr=[]zarr=[]# 逐行读取数据for line in file:# 去除行尾的换行符并分割字符串x, y, z= line.strip().split(',')# 将字符串转换为浮点数x = float(x)y = float(y)z = float(z)points2D.append((x,y))#r g b颜色随意添加,0-1.0之间# color_arr.append((0.0, 1.0, 0.0))#显示绿色color_arr.append((np.random.rand(), np.random.rand(), np.random.rand()))#任意颜色xarr.append(x)yarr.append(y)zarr.append(z)color_arr=np.array(color_arr)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# ax.scatter(xarr, yarr, c='brown', marker='.')
ax.scatter(xarr, yarr, zarr, c=color_arr, marker='.')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
每个点颜色相同每个点颜色不相同

2.2.2 二维(平面)空间任意颜色渲染

      每个点的r、g、b颜色均不相同,如下所示:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号points2D=[]
x_arr=[]
y_arr=[]
with open('E:\\工.txt', 'r') as file:# 初始化一个列表来存储所有的点points2D = []color_arr=[]xarr=[]yarr=[]zarr=[]# 逐行读取数据for line in file:# 去除行尾的换行符并分割字符串x, y, z= line.strip().split(',')# 将字符串转换为浮点数x = float(x)y = float(y)z = float(z)points2D.append((x,y))#r g b颜色随意添加,0-1.0之间# color_arr.append((0.0, 1.0, 0.0))#显示绿色color_arr.append((np.random.rand(), np.random.rand(), np.random.rand()))#任意颜色xarr.append(x)yarr.append(y)zarr.append(z)color_arr=np.array(color_arr)
plt.scatter(*zip(*points2D), marker='o', color=color_arr,s=5)
plt.show()
每个点颜色相同每个点颜色不相同

3、总结

     介绍了基于matplotlib库对点云进行渲染可视化,根据需要可以设置不同颜色,同时展示了三维、二维可视化角度效果。

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

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

相关文章

如何让接口请求,页面不刷新加载,页面加载中 不显示

check(data, config) {return request(Object.assign({url: dicEquPurpose/queryList,data: packQuery(data),noLoading:true }, config || {})) }, 加上 noLoading:true 即可

Spring开发实践(五)

接口幂等性 接口幂等性(Idempotency)是指在网络请求中,无论一个操作被执行多少次,产生的结果都是相同的。换句话说,幂等操作的多次执行不会改变系统的状态,或者说多次执行的结果与单次执行的结果是一样的。…

C++知识点总结(41):广度优先搜索

广度优先搜索 一、广度优先搜索1. 意义2. 分析3. 基本程序 二、例题1. 最短路径模板2. 跳跃的马2.1 审题2.2 思路2.3 参考答案 3. 今天就上 200 200 200 层3.1 审题3.2 参考答案 三、DFS VS. BFS *注:如果还没有学过 结构体 或者 栈/队列/优先队列 的同学请仔细看完…

【代码随想录】【算法训练营】【第65天】 [卡码94]城市间货物运输I

前言 思路及算法思维,指路 代码随想录。 题目来自 卡码网。 day 65,周四,继续ding~ [卡码94] 城市间货物运输I 题目描述 卡码94 城市间货物运输I 解题思路 前提: 思路: 重点: 代码实现 C语言 Be…

ubuntu文件夹加密

veracrypt 安装 wget https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-1.24-Update7-setup.tar.bz2tar -jxvf veracrypt-1.24-Update7-setup.tar.bz2 uname -m sudo ./veracrypt-1.24-Update7-setup-console-x64 # 选1 # 一直回车 选yes安装成功创…

快递查询|阿里云实现调用API接口

整体请求流程 介绍: 本次解析通过阿里云云市场的云服务来实现程序中对快递包裹实时监控,首先需要准备选择一家可以提供快递查询的商品。 https://market.aliyun.com/apimarket/detail/cmapi00065859#skuyuncode5985900001 步骤1: 选择商品 如图点击…

网站外链还有没有作用

前言 还记得“内容为王,外链为皇”这句话吗?在以前网站外链是网站优化中非常主要的环节。那时候做一个网站,只要不停的发外链,收录就不会差,于是大部分站长都使劲发外链。 有市场就有商场,大家都看到外链…

【国内超大型智能算力中心建设白皮书 2024】_智算中心算力规划

文末有福利! 智算中心建设通过领先的体系架构设计,以算力基建化为主体、以算法基建化为引领、以服务智件化为依托,以设施绿色化为支撑,从基建、硬件、软件、算法、服务等全环节开展关键技术落地与应用。 一、体系架构 &#xf…

基于扩散的生物打印策略,控制可打印性和结构特性

基于扩散的生物打印策略,控制可打印性和结构特性 在生物打印中,将生物材料和细胞按特定设计逐层堆积,构建具有复杂结构和功能的三维组织结构。微挤出生物打印是最常用的方法,其核心是生物墨水,它由聚合物材料和细胞组…

国漫推荐02

童年经典 1.《雷速登闪电冲线》赛车、竞赛 2.《雷速登之翼飞冲天》直升机、竞赛 3.《纳米神兵》该剧进述11岁少年小光如何用自己的善良和热忱感化原本企图侵略地球的外星族群,并带领他们一同对抗其他邪恶的外星人,由此一步步成长为拯救地球和人类的英雄…

在线绘图小工具

在线绘图小工具 文章说明程序源码功能展示源码下载 文章说明 本文主要是在看了袁老师的canvas绘图小视频后所写,记录一个简单的canvas绘图功能,并学习一下较为传统的JavaScript事件写法,同时了解一下拖拽事件的更合理写法,等待后续…

C++相关概念和易错语法(18)(array、模板)

1.array (1)普通数组的劣势 当我们直接越界修改值时,一般会在编译时就被拦截 但是越界访问,只要访问距离不算特别大,那么也可以越界访问 当我们不直接越界修改或访问,间接去访问和修改能越界非常远 这里的…

翻牌器单独设置前后缀样式

翻牌器单独设置前后缀样式 <template><div :style"[fontStyle,styleBackGroundColor]"><!-- <span style"color: #1d1d1d"> {{optionData}}</span>--><!-- 设置前缀样式 --><span class"prefix" …

【面试题】MySQL(第四篇)

1.详细说一下一条 MySQL 语句执行的步骤 Server 层按顺序执行 SQL 的步骤为&#xff1a; 客户端请求 -> 连接器&#xff08;验证用户身份&#xff0c;给予权限&#xff09; 查询缓存&#xff08;存在缓存则直接返回&#xff0c;不存在则执行后续操作&#xff09; 分析器&a…

怎么样的主食冻干算好冻干?品质卓越、安全可靠的主食冻干分享

当前主食冻干市场产品质量参差不齐。一些品牌过于追求营养数据的堆砌和利润的增长&#xff0c;却忽视了猫咪健康饮食的基本原则&#xff0c;导致市场上出现了以肉粉冒充鲜肉、修改产品日期等不诚信行为。更令人担忧的是&#xff0c;部分产品未经过严格的第三方质量检测便上市销…

高效的采购管理系统,提升企业采购效能利器

在当今全球化和竞争激烈的商业环境中&#xff0c;企业如何有效管理和优化采购过程&#xff0c;直接影响到企业的运营成本和市场竞争力。传统的手工或半自动化采购管理方式已经难以满足现代企业的需求&#xff0c;因此&#xff0c;越来越多的企业开始转向高效的采购管理系统&…

深度优先算法-DFS(算法篇)

算法之深度优先算法 深度优先算法(DFS) 概念&#xff1a; 深度优先算法(DFS)跟BFS算法一样是用于遍历图的算法&#xff0c;但是DFS并不像BFS算法一样&#xff0c;它搜索出来的路径不具有最短性&#xff0c;并且dfs算法类似于枚举&#xff0c;因此DFS算法一般用于求出问题的所…

雅思词汇及发音积累 2024.7.11

计算机房 computer lab 计算机房 mainframe 主机 monitor 屏幕 screen 键盘 keyboard 键盘 mouse 鼠标 memory 内存 loudspeaker 扬声器 printer 打印机 scanner 扫描仪 photocopier/copier 复印机 laser printer 激光打印机 software programme 程序 viruses /ˈvaɪərəsɪz…

linux ssh 远程执行shell 获取返回值

#!/bin/bashSCRIPTcd / && lsresult$(ssh -o StrictHostKeyCheckingno root10.204.0.1 $SCRIPT) echo "result: $result"或者下面# 远程服务器的IP地址或主机名 HOSTremote_host # 远程服务器的用户名 USERusername # 远程执行的脚本 SCRIPT/path/to/remote/…

Hadoop的HA模式搭建

准备三台虚拟机 bigdata007&#xff0c;bigdata008&#xff0c;bigdata009 1.前置工作 1.修改虚拟机的IP地址和hostname 2.配置集群中的ip映射&#xff08;/etc/hosts&#xff09; 192.168.111.57 bigdata007 192.168.111.58 bigdata008 192.168.111.59 bigdata0093.关闭虚拟…