Opene3d提供了一个简单的可视化函数draw_geometries,该函数用于实现几何对象(PointCloud,TriangleMesh或者Image)的渲染可视化。
在可视化界面能够通过鼠标进行缩放,旋转和平移,改变渲染风格和屏幕截图等,具体使用方法可通过在窗口界面按 h 键进行查看。
在open3d-0.15.1版本中draw_geometries函数有以下两种调用方式:
调用方式一
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:相机的焦距。- 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])
-
刚开始可视化界面中显示的点云如上图所示,通过鼠标拖动将点云更改一个新的显示视角,如下图所示

按下ctrl+c保持这个视角后,这个视角将会成为一个保存在粘贴板里面的一个json字符串。这时再旋转视图到一个不同的视角,比如下图这样:
这时候按下ctrl+v,就可以回到上一步ctrl+c保存的视角。
Open3d中的Visualizer可视化函数支持多种渲染风格。比如按 L将在Phong lighting 和简单颜色渲染之间切换(simple color rendering)。按 2 将展现基于x坐标的颜色。


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