在Open3D中,draw_geometries_with_vertex_selection
函数可以通过鼠标选取几何体中的点,继而对这些点进行操作。本函数提供了一个交互式的界面,使得对于三维几何体的可视化与交互更加容易。
open3d.visualization.draw_geometries_with_vertex_selection(
geometries,
point_show_normal=False,
allow_pick=False,
callback=None
)
draw_geometries_with_vertex_selection
函数的语法包括以下参数:
geometries
:需要显示的几何体,支持传入多个几何体point_show_normal
:一个布尔值,表示是否显示所选点的法线向量allow_pick
:是否允许选择几何体中的点callback
:一个回调函数,用于处理选择的点import open3d as o3d
import numpy as np
pcd = o3d.geometry.PointCloud()
# 生成五个随机点坐标,作为点云
points = np.random.rand(5, 3)
# 为点云设置坐标
pcd.points = o3d.utility.Vector3dVector(points)
# 显示点云,通过鼠标选取其中某个点并输出其坐标
def pick_point(pcd):
print("Selected point coordinates:", pcd.points[pcd.sels[0]])
o3d.visualization.draw_geometries_with_vertex_selection([pcd], callback=pick_point)
通过以上代码,我们可以生成五个随机坐标点的点云,然后通过鼠标选取其中的某个点,并输出该点坐标。
如果不需要选择点,建议使用draw_geometries
函数。
回调函数callback
接受一个参数,该参数为所选点的几何体。通过sels
属性可以获取选中点的索引。
回调函数的输入参数不一定是PointCloud
类,也可以是其他几何体类型。