open3d读取可视化npy文件

open3d不支持npy后缀的文件,仅支持如下格式的文件。

在这里插入图片描述
图片来源:https://mp.weixin.qq.com/s/NomNV6Yan8K2qisiPhQIRw
【解决方法】先用numpy读取这个文件保存为txt格式,在使用open3d读取进行可视化。代码如下:

import open3d as o3d
import numpy as np
np.set_printoptions(suppress=True) # 取消默认科学计数法,open3d无法读取科学计数法表示
data = np.load('point_cloud/scene0000_00_vert.npy')
np.savetxt('point_cloud/scene.txt', data)
# 读取点云并可视化
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)

【一些问题】
1、open3d无法读取numpy默认保存科学计数法的问题,代码中已解决。参考链接
2、原数据中rgb值的范围为0-255,而open3d需要调整为0-1。所以需要数组中指定列除以一个数,即将最后3列除以255,解决方法如下

import numpy as np
a = np.array([[1, 2, 3], [2, 4, 8]])
b = np.array([1, 2, 2]) # 每一列要除的数
c = a/b 
print(c)
[[1.  1.  1.5]
 [2.  2.  4. ]]

3、np读取数据和保存数据的问题。参考链接

  • 1
    点赞
  • 8
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

zyoung17

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值