问题解决:[Open3D WARNING] Read geometry::PointCloud failed: unknown file extension

1. 问题背景

之前需要开发一个点云操作可视化界面,使用open3d打开保存不同类型点云文件,但是操作asc文件时报错[Open3D WARNING] Read geometry::PointCloud failed: unknown file extension for C:/Users/dy_ec/Desktop/planeGUI/plane_filter.asc (format: auto).

2. 问题原因

open3d无法直接打开.asc文件

3. 问题解决

利用np.loadtxt()读取,然后再将numpy数组转换成.pcd格式,和其他格式统一进行后续处理

        elif fileName_suffix == ".asc":
            data = np.loadtxt(fileName_choose,  delimiter=',', skiprows=1)
            # numpy数组转pcd读取 统一格式
            pcd = o3d.geometry.PointCloud()
            pcd.points = o3d.utility.Vector3dVector(data[:, :3])
            pcd.colors = o3d.utility.Vector3dVector(data[:, 3:6])
            point_cloud = pcd

4. 后续问题

读取.asc格式的点云文件后不显示画面,一片空白也不报错。经过debug输出colors数值后发现原因。程序中先通过numpy数组读取.asc文件,后再转换成.pcd文件,最后通过open3d显示可视化。读取的numpy中的colors属性是原始数据,范围在[0,255],而open3d可视化读取的colors一般是在[0,1]区间。因此当读取后缀名为.asc文件时,将colors/255

  • 直接读取的colors数值

  • 能正常显示的colors数值

  • 解决方法

参考链接:

[1]知乎文章

[2]https://codeantenna.com/a/ubPqlcdbDa

[3]Open3d 常用数据格式说明:pcd, ply, stl等_open3d支持的点云格式-CSDN博客

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Serendipity~~`

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值