关键函数

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])

效果展示

本文地址:https://blog.csdn.net/u014072827/article/details/111941460