python利用open3d可视化npy文件

简介: python利用open3d可视化npy文件

文章目录


前期准备:

open3d的安装:

pip install open3d

pip install open3d-python==0.7.0.0 (这个必须有)


1.可视化代码

#coding=utf-8
import open3d as o3d
import numpy as np
np.set_printoptions(suppress=True) # 取消默认科学计数法,open3d无法读取科学计数法表示
data = np.load('./Area_1_conferenceRoom_1.npy')
b = np.array([1 , 1, 1,255, 255, 255]) # 每一列要除的数
np.savetxt('./scene.txt', data[:,:6]/b)
# 读取点云并可视化
pcd =o3d.io.read_point_cloud('./scene.txt', format='xyzrgb') # 原npy文件中的数据正好是按x y z r g b进行排列
print(pcd)
o3d.visualization.draw_geometries([pcd], width=1200, height=600)

2.代码分析

  • 加载数据
data = np.load('./Area_1_conferenceRoom_1.npy')


  • 这时候的数据大小要分清,一般是n * 6,这里的6维分别指的XYZRGB;
    但是我的S3dis数据集是n * 7,最后一位是标签,所以需要把最后一维去掉。
  • 维度减少
np.savetxt('./scene.txt', data[:,:6]/b)


rgb范围减少

原数据中rgb值的范围为0-255,而open3d需要调整为0-1。所以需要数组中指定列除以一个255,即将最后3列除以255,最后保存为txt文件

b = np.array([1 , 1, 1,255, 255, 255]) # 每一列要除的数
np.savetxt('./scene.txt', data[:,:6]/b)
  • 如果不进行减少的话,可能会报错:[Open3D WARNING] [ViewControl] SetViewPoint() failed because window height and width are not set.

3.可视化txt文件

因为npy文件,无法直接可视化,所以需要转换成txt文件,最后再利用open3d可视化。

57.png

# 读取点云并可视化
pcd =o3d.io.read_point_cloud('point_cloud/scene.txt', format='xyzrgb') # 原npy文件中的数据正好是按x y z r g b进行排列
print(pcd)
o3d.visualization.draw_geometries([pcd], width=1200, height=600)

58.png


目录
相关文章
|
3月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
377 0
|
3月前
|
存储 数据可视化 BI
Python可视化应用——学生成绩分布柱状图展示
本程序使用Python读取Excel中的学生成绩数据,统计各分数段人数,并通过Matplotlib库绘制柱状图展示成绩分布。同时计算最高分、最低分及平均分,实现成绩可视化分析。
171 0
|
2月前
|
数据采集 数据可视化 API
驱动业务决策:基于Python的App用户行为分析与可视化方案
驱动业务决策:基于Python的App用户行为分析与可视化方案
|
3月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
3月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
4月前
|
编解码 Prometheus Java
当Python同时操作1000个文件时,为什么你的CPU只用了10%?
本文介绍如何构建一个高效的文件处理系统,解决单线程效率低、多线程易崩溃的矛盾。通过异步队列与多线程池结合,实现任务调度优化,提升I/O密集型操作的性能。
71 4
|
3月前
|
存储 数据采集 数据可视化
Python自动化分析知网文献:爬取、存储与可视化
Python自动化分析知网文献:爬取、存储与可视化
|
4月前
|
人工智能 索引 Python
[oeasy]python094_使用python控制音符列表_midi_文件制作
本文介绍了如何使用Python控制音符列表制作MIDI文件。首先回顾了列表下标索引(正数和负数)的用法,接着通过`mido`库实现MIDI文件生成。以《两只老虎》为例,详细解析了代码逻辑:定义音高映射、构建旋律列表、创建MIDI文件框架,并将音符插入音轨。还探讨了音符时值与八度扩展的实现方法。最终生成的MIDI文件可通过不同平台播放或编辑。总结中提到,此技术可用于随机生成符合调性的旋律,同时引发对列表其他实际应用的思考。
107 5
|
3月前
|
数据采集 监控 算法
Python文件与目录比较全攻略:从基础操作到性能优化
文件比较的核心在于数据指纹校验,通过逐字节比对生成唯一标识,确保内容一致性。从标准库的os与filecmp到高性能第三方库如pydiffx,再到分布式与量子加密技术的未来趋势,文件比较广泛应用于数据备份、代码审查与系统监控等领域,是保障数据完整性的关键技术手段。
87 0
|
4月前
|
数据采集 Web App开发 自然语言处理
利用Python构建今日头条搜索结果的可视化图表
利用Python构建今日头条搜索结果的可视化图表

推荐镜像

更多