Open3D中的open3d.visualization.VisualizerWithVertexSelection类是一个可视化工具类,可用于3D点云或网格数据的交互式查看和操作。该类的register_selection_changed_callback函数用于注册一个回调函数,当用户选中点或网格上的顶点时,该回调函数将被激活,可用于实现自定义的选中效果或其他功能。
VisualizerWithVertexSelection.register_selection_changed_callback(callback)
callback
(function):回调函数,该函数将接收三个参数,分别是选中点的序号列表、选中网格的元素的序号列表以及选中模式(mode)。(无)
import open3d.visualization as vis
import numpy as np
# 创建点云数据
pcd = vis.create_mesh_sphere(radius=1.0, resolution=50)
# 创建可视化工具对象
vis_tool = vis.VisualizerWithVertexSelection()
# 将点云数据添加到可视化工具对象中
vis_tool.create_window()
vis_tool.add_geometry(pcd)
# 注册回调函数,实现自定义功能
def selection_changed_callback(sel_pts_idx, sel_mesh_elem_idx, sel_mode):
print("Selected points:", sel_pts_idx)
print("Selected mesh elements:", sel_mesh_elem_idx)
print("Selected mode:", sel_mode)
vis_tool.register_selection_changed_callback(selection_changed_callback)
# 运行可视化工具
vis_tool.run()