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


目录
相关文章
|
1天前
|
搜索推荐 区块链 开发者
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
|
1天前
|
机器学习/深度学习 存储 监控
基于YOLOv8的多目标检测与自动标注软件【python源码+PyqtUI界面+exe文件】【深度学习】
基于YOLOv8的多目标检测与自动标注软件【python源码+PyqtUI界面+exe文件】【深度学习】
|
1天前
|
算法 数据可视化 Python
【KMeans】Python实现KMeans算法及其可视化
【KMeans】Python实现KMeans算法及其可视化
|
1天前
|
Shell Python
Python基础教程(第3版)中文版 第11章 文件(笔记)
Python基础教程(第3版)中文版 第11章 文件(笔记)
|
1天前
|
Shell Python
Python基础教程(第3版)中文版 第11章 文件(笔记)
Python基础教程(第3版)中文版 第11章 文件(笔记)
|
1天前
|
数据可视化 Python
使用Python进行数据可视化(三、处理csv文件(二))
使用Python进行数据可视化(三、处理csv文件(二))
|
1天前
|
存储 数据可视化 Python
使用Python进行数据可视化(三、处理csv文件)
使用Python进行数据可视化(三、处理csv文件)
|
1天前
|
Python
Python的文件对象readline()
【6月更文挑战第8天】
11 5
|
1天前
|
Python
Python的文件对象read()
【6月更文挑战第8天】
15 8
|
1天前
|
移动开发 Python
Python的文件对象open()
【6月更文挑战第8天】
13 5