关键函数
read_point_cloud(filename, format='auto', remove_nan_points=True, remove_infinite_points=True, print_progress=False)
作用: 从文件读取点云。 当用户不填写点云的扩展名时,会自动解码;若填写它尝试根据扩展名对文件进行解码。
filename | 点云文件的路径 |
format | 输入文件的格式。如果未指定或设置为“auto”,则从文件扩展名推断格式。 |
remove_nan_points | 如果为true,则将从点云中删除包含NaN的所有点。 |
remove_infinite_points | 如果为true,则将从点云中删除包含无限值的所有点。 |
print_progress | 如果设置为true,则在控制台中可视化进度条 |
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)
作用: 可视化点云。 使用鼠标/触控板从不同的角度查看几何图形。按H键为GUI打印出键盘指令的完整列表。
window_name | 可视化窗口的显示标题。 |
width | 可视化窗口的宽度。 |
height | 可视化窗口的高度。 |
left | 可视化窗口的左边距。 |
top | 可视化窗口的上边距。 |
point_show_normal | 如果设置为true,则可视化点法线。 |
mesh_show_wireframe | 如果设置为true,则可视化网格线框。 |
mesh_show_back_face | 可视化网格三角形的背面。 |
代码展示
# -*-coding:utf-8 -*-
import os
import open3d as o3d
import numpy as np
test_data_dir = '/home/pi/PycharmProjects/learn/Open3D/examples/test_data'
point_cloud_file_name = 'fragment.ply'
point_cloud_file_path = os.path.join(test_data_dir, point_cloud_file_name)
print("加载一个格式为ply的点云,并对其进行打印和渲染")
# 读取点云
pcd = o3d.io.read_point_cloud(point_cloud_file_path)
# 打印点云
print(pcd)
print(np.asarray(pcd.points))
# 可视化点云
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])