You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Open3D中点击网格时打开新窗口显示图片的实现方法

实现Open3D中点击球体弹出图片窗口的功能

要实现点击球体网格时弹出新窗口显示图片,你需要借助Open3D的可视化交互能力,通过检测鼠标点击事件并判断选中的几何体来触发图片窗口。以下是完整实现代码:

import numpy as np
import open3d as o3d

# 定义点击事件处理函数
def on_click(vis):
    # 获取选中的几何体ID
    picked_ids = vis.get_picked_ids()
    if picked_ids:
        # 获取选中的几何体
        picked_geom = vis.get_geometry(picked_ids[0])
        # 通过几何体类型+尺寸判断是否为目标球体,也可给球体设置唯一name属性来精准识别
        if isinstance(picked_geom, o3d.geometry.TriangleMesh) and np.isclose(picked_geom.get_max_bound()[0], 0.3, atol=1e-2):
            # 加载目标图片
            img = o3d.io.read_image("你的图片路径.jpg")
            # 创建新窗口显示图片
            o3d.visualization.draw_geometries([img], window_name="图片预览")

def main():
    mesh = o3d.io.read_triangle_mesh(o3d.data.BunnyMesh().path)
    pcd1 = mesh.sample_points_poisson_disk(10000)

    # 使用支持几何体选择的VisualizerWithEditing类
    visualizer = o3d.visualization.VisualizerWithEditing()
    visualizer.create_window()

    visualizer.add_geometry(pcd1)

    # 配置渲染选项
    rendering_options = visualizer.get_render_option()
    rendering_options.show_coordinate_frame = True
    rendering_options.background_color = np.asarray([0.5, 0.5, 0.5])

    # 创建球体并添加到窗口
    sphere_mesh = o3d.geometry.TriangleMesh.create_sphere(radius=0.1)
    sphere_mesh.scale(scale=0.3, center=sphere_mesh.get_center())
    # 可选:给球体设置唯一标识名称
    # sphere_mesh.name = "clickable_sphere"
    visualizer.add_geometry(sphere_mesh)

    # 注册鼠标点击回调函数
    visualizer.register_click_callback(on_click)

    visualizer.run()
    visualizer.destroy_window()

if __name__ == "__main__":
    main()

关键实现细节说明:

  1. 选择VisualizerWithEditing:该类在基础Visualizer之上扩展了几何体选择功能,能通过get_picked_ids()获取用户点击的几何体ID。
  2. 点击回调注册:通过register_click_callback将自定义处理函数绑定到点击事件,用户点击窗口时自动触发逻辑。
  3. 球体识别逻辑:示例通过几何体类型+缩放后的尺寸判断目标球体,也可以给球体设置name属性(如sphere_mesh.name = "target_sphere"),在回调中通过picked_geom.name == "target_sphere"来精准识别。
  4. 图片显示:使用o3d.io.read_image加载本地图片,调用o3d.visualization.draw_geometries创建独立窗口显示图片,注意替换代码中的图片路径为实际路径。

内容的提问来源于stack exchange,提问作者Dang Manh Truong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 00:59:58