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

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

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是一个用于3D数据处理的开源库,其中包含了许多常用的点云可视化方法。下面让我们一起来了解一些常用的点云可视化方法。 要可视化点云,首先需要将点云读入Open3D中。可以使用`o3d.io.read_point_cloud`函数从文件中读取点云,也可以使用`o3d.geometry.PointCloud`类手动创建点云。例如,可以使用以下代码创建一个包含随机点的点云: ```python import open3d as o3d import numpy as np # 生成一个包含100个随机点的点云 points = np.random.rand(100, 3) # 100个点,每个点有3个坐标 pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(points) ``` 接下来,可以使用以下方法将点云可视化: 1. 使用`o3d.visualization.draw_geometries`方法可视化单个点云。 ```python import open3d as o3d import numpy as np # 生成一个包含100个随机点的点云 points = np.random.rand(100, 3) # 100个点,每个点有3个坐标 pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(points) # 可视化点云 o3d.visualization.draw_geometries([pcd]) ``` 2. 使用`o3d.visualization.Visualizer`类可视化多个点云。 ```python import open3d as o3d import numpy as np # 生成两个包含随机点的点云 points1 = np.random.rand(100, 3) # 100个点,每个点有3个坐标 pcd1 = o3d.geometry.PointCloud() pcd1.points = o3d.utility.Vector3dVector(points1) points2 = np.random.rand(50, 3) # 50个点,每个点有3个坐标 pcd2 = o3d.geometry.PointCloud() pcd2.points = o3d.utility.Vector3dVector(points2) # 创建可视化器 vis = o3d.visualization.Visualizer() vis.create_window() # 将点云添加到可视化器中 vis.add_geometry(pcd1) vis.add_geometry(pcd2) # 显示场景 vis.run() # 关闭窗口 vis.destroy_window() ``` 3. 使用`o3d.visualization.draw_geometries_with_key_callbacks`方法添加交互式控件。 ```python import open3d as o3d import numpy as np # 生成一个包含100个随机点的点云 points = np.random.rand(100, 3) # 100个点,每个点有3个坐标 pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(points) # 可视化点云,并添加交互式控件 def rotate_view(vis): ctr = vis.get_view_control() ctr.rotate(10.0, 0.0) o3d.visualization.draw_geometries_with_key_callbacks([pcd], {'r': rotate_view}) ``` 在这个示例中,我们使用`o3d.visualization.draw_geometries_with_key_callbacks`方法可视化一个点云,并添加了一个交互式控件,按下'r'键可以旋转视角。 除了上述方法外,Open3D还提供了许多其他的点云可视化方法,如使用不同的颜色和大小可视化点云可视化点云的法向量、可视化点云的曲率等等。可以参考Open3D的官方文档了解更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JoannaJuanCV

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

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

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

打赏作者

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

抵扣说明:

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

余额充值