当前位置: 首页 > news >正文

第六课Open3D点云数据处理:点云、mesh可视化(Visualizer类)

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()
http://www.jsqmd.com/news/160948/

相关文章:

  • WSL2下运行PyTorch-CUDA-v2.7镜像的完整配置流程
  • Conda环境导出与导入:PyTorch-CUDA-v2.7跨机器迁移技巧
  • 软件工程 课程回顾 102301321 吴颖哲
  • Git克隆项目后如何快速运行?配合PyTorch镜像免依赖烦恼
  • 2025年12月淮北无人机表演、淮北CAAC无人机培训、淮北政企无人机培训、淮北退役军人无人机培训、淮北无人机培训机构哪家强 - 2025年品牌推荐榜
  • CNN图像分类项目快速上手:基于PyTorch-CUDA-v2.7镜像教程
  • 中性点直流偏磁在线监测推荐生产厂家 - 品牌推荐大师1
  • 无需手动编译:PyTorch-CUDA-v2.7镜像自动匹配驱动版本
  • Anaconda配置PyTorch环境太麻烦?试试PyTorch-CUDA-v2.7镜像
  • Linux软链接应用详解:从原理到实战案例
  • 傅里叶变换(四):直角坐标与极坐标
  • PyTorch官方安装步骤太复杂?这个镜像简化90%流程
  • 轻量级深度学习环境:PyTorch-CUDA-v2.7仅需2分钟启动
  • 手把手教学:在云平台拉取并运行PyTorch-CUDA-v2.7镜像
  • 2026年上半年徐州室内装修/室内设计/全屋定制/精装局改/软装搭配公司综合评估与选型指南 - 2025年品牌推荐榜
  • Markdown笔记记录实验过程:配合Jupyter和PyTorch镜像高效科研
  • PyTorch安装教程GPU版:基于CUDA-v2.7镜像的高效配置方案
  • PyTorch-CUDA-v2.7镜像是否支持A100?实测结果公布
  • Markdown语法高亮设置:正确显示PyTorch代码块
  • 旧版PyTorch升级指南:迁移到v2.7镜像的注意事项
  • 2025年高性价比的精密铝材加工工厂推荐,精密铝材加工供应商全解析 - 工业品牌热点
  • 2025年贵阳推荐西点培训学校排行榜,高性价比西点技能培训中心测评精选 - 工业推荐榜
  • 2025年终盘点:固体加料系统哪家好?固体加料系统/供应商/生产厂家推荐 - 品牌推荐大师1
  • SSH密钥登录PyTorch-CUDA-v2.7容器:安全高效的远程访问方式
  • DeepSeek:AI助手的高效使用指南
  • 市面上比较好的商标律所推荐,这些专业机构值得关注 - 品牌排行榜
  • 102301318 杨垚总结
  • NVIDIA显卡适配性测试报告:PyTorch-CUDA-v2.7全面兼容主流型号
  • 产品路线图怎么做:从愿景到里程碑的 6 步落地法
  • QLoRA量化微调教程:结合PyTorch-CUDA-v2.7节省显存开销