
Open3D 从 0.15.0 版本起将示例数据统一托管于 o3d.data 模块,用户可通过内置数据类自动下载并加载 TestData(如 fragment.ply),无需手动获取或配置路径。
open3d 从 0.15.0 版本起将示例数据统一托管于 `o3d.data` 模块,用户可通过内置数据类自动下载并加载 testdata(如 `fragment.ply`),无需手动获取或配置路径。
在旧版 Open3D(如 0.9.0)文档中,教程常引用相对路径 ../../TestData/fragment.ply,但该目录不会随 pip install open3d 自动安装——它属于独立的测试资源仓库,需显式下载。而现代 Open3D(≥0.15.0)已重构数据管理机制:所有官方测试数据均封装为 o3d.data.* 类(如 o3d.data.DemoICPPointClouds、o3d.data.LivingRoomPointClouds),首次调用时会自动下载至本地缓存目录(默认为 ~/.cache/open3d/data/),并返回标准化的数据路径。
✅ 正确做法(推荐,适用于 Open3D ≥0.15.0):
import open3d as o3d # 自动下载并获取 fragment.ply 路径(首次运行会联网下载) dataset = o3d.data.DemoICPPointClouds() pcd = o3d.io.read_point_cloud(dataset.paths[0]) # paths[0] 是 source.ply,paths[1] 是 target.ply # 若需 fragment.ply(常见于点云可视化教程),可使用: # dataset = o3d.data.FragmentPointClouds() # Open3D ≥0.16.0 支持 # pcd = o3d.io.read_point_cloud(dataset.point_cloud_path) print(pcd) o3d.visualization.draw_geometries([pcd])
⚠️ 注意事项:
-
版本兼容性:
o3d.data模块仅在 Open3D ≥0.15.0 中可用。请先升级:pip3 install --upgrade open3d -
树莓派适配:Raspberry Pi 4 上建议使用
arm64构建的 wheel(PyPI 提供官方支持),但需确保系统满足 OpenGL 渲染依赖(如安装libgl1-mesa-glx和libglib2.0-0)。 -
离线使用:首次下载后,数据永久缓存,后续可离线访问;路径可通过
dataset.path查看。 -
替代方案(不推荐):若因网络限制无法自动下载,可手动克隆 Open3D-Test-Data 仓库,将
TestData/复制到项目根目录,并调整路径为./TestData/fragment.ply——但此方式易与版本脱节,且丧失跨平台一致性。
? 总结:摒弃硬编码相对路径,拥抱 o3d.data 是现代 Open3D 开发的最佳实践。它不仅解决数据分发问题,还保障了教程代码的可复现性与版本鲁棒性。务必查阅 最新版官方文档(URL 含 latest),以获取准确的 API 用法和数据类列表。










