Open3D 可视化(1)——简单可视化

一、简单可视化

Opene3d提供了一个简单的可视化函数draw_geometries,该函数用于实现几何对象(PointCloudTriangleMesh或者Image)的渲染可视化。

在可视化界面能够通过鼠标进行缩放,旋转和平移,改变渲染风格和屏幕截图等,具体使用方法可通过在窗口界面按 h 键进行查看。

在open3d-0.15.1版本中draw_geometries函数有以下两种调用方式:

1、主要函数

调用方式一

draw_geometries(window_name='Open3D', width=1920, height=1080, left=50, top=50, point_show_normal=False, mesh_show_wireframe=False, mesh_show_back_face, *args, **kwargs):
  • window_name:可视化窗口的显示标题。
  • width:可视化窗口的宽度。
  • height:可视化窗口的高度。
  • left:可视化窗口的左边距。
  • top:可视化窗口的上边距。
  • point_show_normal:如果设置为true,则可视化点法线。
  • mesh_show_wireframe:如果设置为true,则可视化网格线框。
  • mesh_show_back_face:可视化网格三角形的背面。

代码示例

import open3d as o3d

print("Testing IO for images")
img = o3d.io.read_image("y7.png")  # 读取图片(支持jpg和png格式)
print(img)  # 图片大小
o3d.io.write_image("天使.jpg", img)  # 保存图片
o3d.visualization.draw_geometries([img], window_name="Open3D显示图像",
                                  width=1024, height=768,
                                  left=50, top=50,
                                  mesh_show_back_face=False)  # 显示图片

调用方式二

draw_geometries(geometry_list, window_name='Open3D',
 width=1920, height=1080, left=50, top=50,
 point_show_normal=False,
  mesh_show_wireframe=False, 
  mesh_show_back_face=False, 
  lookat, up, front, zoom)
  • window_name:可视化窗口的显示标题。
  • width:可视化窗口的宽度。
  • height:可视化窗口的高度。
  • left:可视化窗口的左边距。
  • top:可视化窗口的上边距。
  • point_show_normal:如果设置为true,则可视化点法线。
  • mesh_show_wireframe:如果设置为true,则可视化网格线框。
  • mesh_show_back_face:可视化网格三角形的背面。
  • lookat:相机的主视方向向量。
  • up:相机的俯视方向向量。
  • front:相机的前视方向向量。
  • zoom:相机的焦距。

2、代码示例

import open3d as o3d


print("读取点云并可视化")
pcd = o3d.io.read_point_cloud("data/fragment.ply")
o3d.visualization.draw_geometries([pcd],
                                  zoom=0.3412,
                                  front=[0.4257, -0.2125, -0.8795],
                                  lookat=[2.6172, 2.0475, 1.532],
                                  up=[-0.0694, -0.9768, 0.2024])

3、结果展示

二、存储视点

刚开始可视化界面中显示的点云如上图所示,通过鼠标拖动将点云更改一个新的显示视角,如下图所示

按下ctrl+c保持这个视角后,这个视角将会成为一个保存在粘贴板里面的一个json字符串。这时再旋转视图到一个不同的视角,比如下图这样:

这时候按下ctrl+v,就可以回到上一步ctrl+c保存的视角。

三、渲染风格

Open3d中的Visualizer可视化函数支持多种渲染风格。比如按 L将在Phong lighting 和简单颜色渲染之间切换(simple color rendering)。按 2 将展现基于x坐标的颜色。

颜色映射也可以进行调整,比如使用shift+4,就可以把颜色从喷墨映射调整到热力图映射。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
点云可视化是指将三维点云数据以图形的形式展示出来,使得用户可以更直观地观察和分析点云数据。在Python中,有多种库可以用于点云可视化,其中包括Open3D和Matplotlib等。 使用Open3D库进行点云可视化的方法如下: 1. 导入Open3D库和其他必要的库:import open3d as o3d 2. 读取点云数据:pcd = o3d.io.read_point_cloud("point_cloud.ply"),其中"point_cloud.ply"是点云数据的文件路径。 3. 创建可视化窗口:vis = o3d.visualization.VisualizerWithVertexSelection(),可以指定窗口名称和可见性。 4. 将点云数据添加到可视化窗口:vis.add_geometry(pcd) 5. 运行可视化窗口:vis.run() 6. 获取选中的点的索引和坐标:point = vis.get_picked_points(),可以通过point\[0\].index和np.asarray(point\[0\].coord)分别获取索引和坐标。 7. 关闭可视化窗口:vis.destroy_window() 这样,你就可以使用Open3D库在Python中进行点云可视化了。如果你想了解更多关于点云可视化的内容,可以参考上述引用中提供的链接。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [python——点云可视化(分割结果,及特征)](https://blog.csdn.net/ssq183/article/details/104603454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python点云可视化](https://blog.csdn.net/suiyingy/article/details/124015667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python如何实现点云可视化交互——Open3D实例教程(获取所选点的信息)保姆级教学](https://blog.csdn.net/qq_45912037/article/details/127096161)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值