欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Open3d无法使用plt.get_cmap(“viridis“)着色pcd格式点云问题

Open3d无法使用plt.get_cmap(“viridis“)着色pcd格式点云问题

2025/4/18 22:24:03 来源:https://blog.csdn.net/qq_42964728/article/details/147124004  浏览:    关键词:Open3d无法使用plt.get_cmap(“viridis“)着色pcd格式点云问题

在使用Open3D进行点云处理和可视化时,我们经常会遇到一个问题:直接加载PCD文件时,点云的颜色无法正确显示,但将其转换为PLY格式后再加载,颜色就能正常显示。本文将探讨这一问题的原因,并提供解决方案。

1. 问题描述

在使用Open3D加载PCD文件时,即使点云数据本身包含颜色信息,但可视化时颜色可能无法正确显示。例如,以下代码加载了一个PCD文件并尝试显示其颜色:

import open3d as o3dpcd = o3d.io.read_point_cloud("path/to/your/file.pcd")densities_color = plt.get_cmap("viridis")(densities)[:, :3]colors = densities_color.copy()pcd.colors = o3d.utility.Vector3dVector(colors)o3d.visualization.draw_geometries([pcd])

然而,运行上述代码后,点云的颜色可能无法正确显示,所有点都显示为黑色。但如果将该PCD文件转换为PLY格式后再加载,颜色就能正常显示。

2. 原因分析

Open3D在处理PCD文件时,可能会因为文件格式的限制或解析问题,导致颜色信息无法正确读取。而PLY格式通常能更好地保留颜色信息,因此转换为PLY格式后,颜色可以正常显示。

3. 解决方案

方法1:将PCD文件转换为PLY格式
最直接的解决方案是将PCD文件转换为PLY格式,然后再加载。Open3D提供了方便的方法来实现文件格式的转换:

import open3d as o3d# 加载PCD文件
pcd = o3d.io.read_point_cloud("path/to/your/file.pcd")# 将PCD文件保存为PLY格式
o3d.io.write_point_cloud("path/to/your/file.ply", pcd)# 加载PLY文件
ply = o3d.io.read_point_cloud("path/to/your/file.ply")
o3d.visualization.draw_geometries([ply])

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词