python:读取PCD、PLY格式点云数据,转换为numpy格式,保存为txt

最近想查看三维激光扫描仪扫描到的点云数据时,因为我懒得下载可视化软件,所以查找了很多python读取点云文件的代码,发现很少有可以直接使用的python代码,经过尝试,记录一下已经被我成功运行的代码。

读取PCD格式点云数据,转换为numpy格式,保存为txt

import numpy as np
import open3d as o3d

#读数据
pcd = o3d.io.read_point_cloud("E:\\DataSet\\cloudGlobal1023.pcd")

#转格式
out_arr = np.asarray(pcd.points)

#保存文件
np.savetxt(r'E:\\DataSet\\testPCD.txt', out_arr, fmt='%d')

print("output array from input list : ", out_arr)
print("output array shape : ", out_arr.shape)

读取PLY格式点云数据,转换为numpy格式,保存为txt

import numpy as np
from plyfile import PlyData

def read_ply_cloud(filename):
    ply_data = PlyData.read(filename)
    points = ply_data['vertex'].data.copy()
    print(points.shape)
    cloud = np.empty([6513005, 3])
    for i in range(len(points)):
        point = points[i]
        p = np.array([point[0], point[1], point[2]])
        cloud[i] = p
    return np.array(cloud)

out_arr = read_ply_cloud('E:\\DataSet\\IDX_1110_POS_31_profile388.ply')

np.savetxt(r'E:\\DataSet\\testPLY.txt', out_arr, fmt='%d')
print("output array from input list : ", out_arr)
print("shape : ", out_arr.shape)

你可能感兴趣的:(python,点云,计算机图形,numpy,python,开发语言)