驻马店市网站建设_网站建设公司_JSON_seo优化
2025/12/29 18:49:11 网站建设 项目流程

1 Visualizer类

2 参数详解

2.1 常用参数

2.2 渲染参数 RenderOption 详解

3 点云可视化

3.1 最简单的点云可视化

3.2 可视化多个点云

3.3 可视化点云法线

3.4 其他参数

4 mesh可视化

4.1 最简单的mesh可视化

4.2 可视化三角网格和模型内表面

4.3 可视化多个mesh


1 Visualizer类

open3d.visualization.Visualizer是Open3D库中可视化工具的核心类,用于创建和管理3D场景,显示点云、网格等3D对象,以及设置相机视角和光照等。

2 参数详解

2.1 常用参数

  • create_window()

    create_window(window_name='Open3D', width=1920, height=1080, left=50, top=50, visible=True)

    全部为可选参数。

    • window_name (str, optional, default=‘Open3D’) – 可视化窗口的名字.

    • width (int, optional, default=1920) – 可视化窗口的宽度.

    • height (int, optional, default=1080) – 可视化窗口的高度.

    • left (int, optional, default=50) – 可视化窗口的左边距.

    • top (int, optional, default=50) – 可视化窗口的上边距.

    • visible (bool, optional, default=True) – 可视化窗口是否可见.

  • add_geometry(geometry):添加要可视化的几何对象geometry,可以是点云、mesh。

  • remove_geometry(geometry):移除已经添加的几何对象geometry,可以是点云、mesh。

  • clear_geometries():清空要可视化窗口中的所有几何对象。

  • set_full_screen(bool):设置是否全屏显示点云,默认False,不全屏显示。

  • toggle_full_screen():全屏/非全屏显示点云切换。即在非全屏下设置该函数,则将全屏展示;在全屏状态下设置该函数,则将退出全屏。

  • run():运行并显示可视化窗口。

  • destroy_window():关闭可视化窗口。

  • get_render_option():获取渲染参数 RenderOption,详情见 2.2节

2.2 渲染参数 RenderOption 详解

  • background_color = (r, g, b):可视化窗口的背景颜色,float类型,其中 r g b 取值范围在[0, 1].
  • point_size = float:(点云)点大小,float类型,。
  • point_show_normal = bool:(点云)可视化法线,bool类型,默认False.
  • mesh_show_wireframe = bool:(mesh)可视化三角网格,bool类型,默认False.
  • mesh_show_back_face = bool:(mesh)在mesh_show_wireframe = True 的前提下,可视化mesh内表面,bool类型,默认False.
  • show_coordinate_frame = bool:显示三维坐标轴,红色轴为X轴,绿色轴为Y轴,蓝色轴为Z轴。

3 点云可视化

3.1 最简单的点云可视化

import open3d as o3d import copy print("->加载点云...") pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny\bunny.ply") # 创建可视化器 vis = o3d.visualization.Visualizer() # 创建可视化窗口 vis.create_window() # 将点云添加到场景中 vis.add_geometry(pcd) # 显示场景 vis.run() # 关闭窗口 vis.destroy_window()

3.2 可视化多个点云

import open3d as o3d import copy print("->加载点云...") pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny\bunny.ply") # 进行深拷贝 pcd_t = copy.deepcopy(pcd) # 平移向量 translation = [0.2, 0.0, 0.0] # 在 z 轴上平移 10.0米 # 执行平移 pcd_t.translate(translation) # 创建可视化器 vis = o3d.visualization.Visualizer() # 创建可视化窗口 vis.create_window() # 将点云添加到场景中 vis.add_geometry(pcd) vis.add_geometry(pcd_t) # 显示场景 vis.run() # 关闭窗口 vis.destroy_window()

3.3 可视化点云法线

import open3d as o3d import copy # 读取点云文件 pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny\bunny.ply") # 创建可视化器 vis = o3d.visualization.Visualizer() vis.create_window(window_name='点云法向量') radius = 0.01 # 搜索半径 max_nn = 30 # 邻域内用于估算法线的最大点数 pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius, max_nn)) # 将点云添加到可视化器中 vis.add_geometry(pcd) # 渲染参数 opt=vis.get_render_option() # 背景色 opt.background_color = (0.9, 1, 0.9) # 点大小 opt.point_size = 2 # 法向量 opt.point_show_normal = True # 显示场景 vis.run() # 释放窗口 vis.destroy_window()

3.4 其他参数

import open3d as o3d import copy print("->加载点云...") pcd = o3d.io.read_point_cloud(r"H:\HTempWK\temp\open3d\pointdata\bunny\bunny.ply") # 进行深拷贝 pcd_t = copy.deepcopy(pcd) # 平移向量 translation = [0.0, 0.0, 10.0] # 在 z 轴上平移 10.0米 # 执行平移 pcd_t.translate(translation) # 创建可视化器 vis = o3d.visualization.Visualizer() vis.create_window(window_name='其他参数', width=1920, height=1080, left=50, top=50, visible=True) # 将点云添加到场景中 vis.add_geometry(pcd) vis.add_geometry(pcd_t) # 移除场景中的点云pcd_t vis.remove_geometry(pcd_t) # 清空场景内的所有点云 vis.clear_geometries() # 将点云pcd_t添加到场景中 vis.add_geometry(pcd_t) # 全屏 vis.set_full_screen(True) # 全屏/非全屏 切换 vis.toggle_full_screen() # 显示场景 vis.run() # 关闭窗口 vis.destroy_window()

4 mesh可视化

import open3d as o3d import copy # 读取mesh文件 mesh = o3d.io.read_triangle_mesh("bunny.ply") # 创建可视化器 vis = o3d.visualization.Visualizer() vis.create_window(window_name='最简单的mesh可视化') # 将点云添加到可视化器中 vis.add_geometry(mesh) # 显示场景 vis.run() # 释放窗口 vis.destroy_window()

4.1 最简单的mesh可视化

import open3d as o3d import copy # 读取mesh文件 mesh = o3d.io.read_triangle_mesh("bunny.ply") # 创建可视化器 vis = o3d.visualization.Visualizer() vis.create_window(window_name='三角网格内表面') # 将点云添加到可视化器中 vis.add_geometry(mesh) # 渲染参数opt opt = vis.get_render_option() # 背景色 opt.background_color = (0.9, 1, 0.9) # 三角网格 opt.mesh_show_wireframe = True # 内表面 opt.mesh_show_back_face = True # 坐标轴 opt.show_coordinate_frame = True # 显示场景 vis.run() # 释放窗口 vis.destroy_window()

4.2 可视化三角网格和模型内表面

import open3d as o3d import copy # 读取mesh文件 mesh = o3d.io.read_triangle_mesh("bunny.ply") # 创建可视化器 vis = o3d.visualization.Visualizer() vis.create_window(window_name='三角网格内表面') # 将点云添加到可视化器中 vis.add_geometry(mesh) # 渲染参数opt opt = vis.get_render_option() # 背景色 opt.background_color = (0.9, 1, 0.9) # 三角网格 opt.mesh_show_wireframe = True # 内表面 opt.mesh_show_back_face = True # 坐标轴 opt.show_coordinate_frame = True # 显示场景 vis.run() # 释放窗口 vis.destroy_window()

4.3 可视化多个mesh

import open3d as o3d import copy # 读取mesh文件 mesh = o3d.io.read_triangle_mesh("bunny.ply") # 进行深拷贝 mesh_t = copy.deepcopy(mesh) # 平移向量 translation = [0.2, 0.0, 0.0] # 在 x 轴上平移 0.2 米 # 执行平移 mesh_t.translate(translation) # 创建可视化器 vis = o3d.visualization.Visualizer() vis.create_window(window_name='可视化多个mesh', width=1920, height=1080, left=50, top=50, visible=True) # 将点云添加到可视化器中 vis.add_geometry(mesh) vis.add_geometry(mesh_t) # 渲染参数opt opt = vis.get_render_option() # 背景色 opt.background_color = (0.9, 1, 0.9) # 三角网格 opt.mesh_show_wireframe = True # 坐标轴 opt.show_coordinate_frame = True # 显示场景 vis.run() # 释放窗口 vis.destroy_window()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询