1.读取一个二进制的点云文件
2.使用pyvista高程渲染进行显示
3.python代码如下:
import os
import numpy as np
import pyvista as pv
def file_to_matrix(filename):
m1 = None
if not os.path.exists(filename):
return None
if filename.endswith(".dat"):
with open(filename, "rb") as f:
data = f.read()
num_rows = len(data) // 12
m1 = np.frombuffer(data, dtype=np.float32).reshape(num_rows, 3).copy() # 创建可写副本
return m1
#pyvista显示点云
def show_3Dpoint_Z_elevation(points):
# 创建裁剪后的点云对象
clipped_point_cloud = pv.PolyData(points)
# 创建可视化窗口
plotter = pv.Plotter()
# 获取裁剪后点云数据的高程值
elevation = clipped_point_cloud.points[:, 2]
# 添加裁剪后的点云数据,并使用高程值进行颜色映射
plotter.add_mesh(clipped_point_cloud, scalars=elevation, cmap='jet', point_size=2.0)
# 显示坐标
plotter.show_axes()
# 显示刻度
plotter.show_grid()
# 显示点云
plotter.show()
#main
pc = file_to_matrix("pc3.dat")
show_3Dpoint_Z_elevation(pc)
4.二进制点云文件及代码下载地址:
复制这段内容后打开百度网盘手机App,操作更方便哦
链接: https://pan.baidu.com/s/1dwSGWKy_1Qms6MDz3h6Niw
提取码: ktaq