1. 读取并可视化点云
任务目标
本案例将使用Open3D读取一个PLY格式的点云文件,并在可视化窗口中显示点云的基本形状与颜色。通过本案例,你将掌握Open3D点云IO与可视化的最小闭环流程。
环境依赖
- Python 3.8+
- Open3D库:
pip install open3d - 示例数据:使用Open3D自带的示例PLY文件(
fragment.ply),无需额外下载
完整代码
import open3d as o3d
# 读取点云文件(使用Open3D内置示例数据)
ply_path = "fragment.ply"
point_cloud = o3d.io.read_point_cloud(ply_path)
# 检查点云是否读取成功
if point_cloud.is_empty():
print("错误:点云文件为空或读取失败,请检查文件路径。")
else:
print(f"成功读取点云,包含 {len(point_cloud.points)} 个点")
# 打印点云的基本信息
print("点云包围盒范围:", point_cloud.get_axis_aligned_bounding_box())
print("点云是否有颜色:", point_cloud.has_colors())
# 可视化点云
o3d.visualization.draw_geometries([point_cloud],
window_name="Open3D 点云可视化",
width=800, height=600)
运行方式
- 将上述代码保存为
read_visualize_pointcloud.py。 - 在终端中运行:
python read_visualize_pointcloud.py。 - 确保当前工作目录下存在
fragment.ply文件(Open3D示例数据通常位于Open3D安装目录的examples/test_data/下,若不在当前目录,请将ply_path改为该文件的路径)。
验证方法
- 控制台输出:程序应打印点云的点数(通常为约5万点)、包围盒范围以及是否有颜色信息。
- 可视化窗口:运行后应弹出一个窗口,显示三维点云形状。若点云包含颜色,点会呈现彩色;否则为灰色。可通过鼠标拖拽旋转视角,滚轮缩放,确认点云的三维结构清晰可见。
- 通过条件:窗口正常打开且点云渲染无报错,即视为案例通过。
常见问题
- 文件找不到:若提示文件不存在,请将
ply_path替换为Open3D安装目录下examples/test_data/fragment.ply的完整路径,或使用自己的PLY文件路径。 - 窗口闪退:确保在脚本末尾调用
draw_geometries后没有立即退出;该函数会阻塞直到窗口关闭。