基于Open3D的点云处理21-交互式可视化

本文介绍了如何使用Open3D进行交互式点云处理,包括区域选择、裁剪和粗配准。通过手动选点和操作键盘快捷键,可以实现几何对齐、几何选择、保存选择、自由视角切换等功能。此外,还提供了手动配准的步骤,通过选取对应点进行ICP配准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 区域选择、裁剪

o3d.visualization.draw_geometries_with_editing([pcd])
  1. 按两次’Y’以将几何与y轴的负方向对齐
  2. 按’K’锁定屏幕并切换到选择模式
  3. 拖动选择矩形或使用[ctrl+ 左键] 单击多边形选择
  4. 按’C’ 获取选定的几何图形
  5. 按’S’保存选择的几何图形
  6. 按’F’ 切换到freeview模式
def demo_crop_geometry()
### Open3D库中的点云可视化 Open3D 是一个功能强大的开源库,支持多种三维数据处理任务,其中包括点云的可视化[^1]。以下是有关如何使用 Open3D 实现点云可视化的详细介绍以及示例代码。 #### 基础环境配置 为了运行 Open3D 的点云可视化程序,需先安装该库并导入必要的模块。可以通过 pip 安装最新版本的 Open3D: ```bash pip install open3d ``` #### 加载与显示点云 加载点云文件后,可利用 `o3d.visualization.draw_geometries` 函数快速渲染点云。以下是一个简单的例子,展示了如何读取 PCD 文件格式的点云并将其可视化[^2]。 ```python import open3d as o3d if __name__ == "__main__": # 读取PCD格式的点云文件 file_path = 'path_to_your_file.pcd' pcd = o3d.io.read_point_cloud(file_path) # 打印点云基本信息 print(pcd) # 设置统一颜色(蓝色) pcd.paint_uniform_color([0, 0, 1]) # 可视化点云 o3d.visualization.draw_geometries( [pcd], window_name="点云显示", point_show_normal=False, width=800, # 窗口宽度 height=600 # 窗口高度 ) ``` 此代码片段实现了从本地路径加载点云文件,并设置窗口参数来控制显示效果[^4]。 #### 显示法向量 除了基本的点云显示外,还可以进一步增强可视化效果,比如显示点云的法向量。这通常用于分析几何形状的方向特性。下面是一段代码示例,说明如何计算和绘制法向量[^3]。 ```python import open3d as o3d if __name__ == "__main__": # 创建球形点云作为示例 mesh = o3d.geometry.TriangleMesh.create_sphere() pcd = mesh.sample_points_poisson_disk(500) # 计算法向量 pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30)) # 可视化带法向量的点云 o3d.visualization.draw_geometries( [pcd], point_show_normal=True # 启用法向量显示 ) ``` 这段代码创建了一个球体点云模型,并估计其表面法向量,最后通过启用 `point_show_normal` 参数将这些方向矢量一同呈现出来。 #### 自定义交互式界面 对于更复杂的场景需求,可以借助 Visualizer 类构建自定义的交互式 GUI 应用程序。这种方法允许动态调整视角、缩放比例以及其他属性。 ```python import open3d as o3d def custom_draw_geometry_with_key_callback(pcd): vis = o3d.visualization.VisualizerWithKeyCallback() def rotate_view(vis): ctr = vis.get_view_control() ctr.rotate(10.0, 0.0) return False vis.register_key_callback(ord("R"), rotate_view) # 绑定按键事件 (按'R'键旋转视图) vis.create_window(window_name='Custom Viewer', width=800, height=600) vis.add_geometry(pcd) vis.run() vis.destroy_window() if __name__ == "__main__": pcd = o3d.io.read_point_cloud('path_to_your_file.pcd') custom_draw_geometry_with_key_callback(pcd) ``` 以上脚本定义了一种带有键盘回调机制的个性化查看器,在其中按下字母 R 键即可触发特定角度的旋转动作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JoannaJuanCV

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

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

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

打赏作者

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

抵扣说明:

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

余额充值