通过open3d只能读取xyz坐标,对于ply中存储的其他点云属性字段,比如法向量、强度、颜色等等则不能很好的读取。因此参考了相关代码实现了点云属性的读取,代码如下:
import numpy as np
def read_ply(infile, limit_points=0, move_to_origin=False, read_normals=True):
"""collect vertex coordinates and normals from input file"""
ox,oy,oz = (0,0,0)
datadict = {}
with open(infile) as f:
vertexcount = facecount = None
property_dict = {}
property_count = 0
while True:
line = f.readline()
if line.startswith("element vertex"):
vertexcount = line.split()[-1]
while True:
line = f.readline()
prev_cursor_pos = f.tell()
if line.startswith("property"):
property_name = line.split()[-1]
property_dict[property_name] = property_count
property_count += 1
else:
f.seek(prev_cursor_p
利用Python实现点云属性读取
订阅专栏 解锁全文
6660

被折叠的 条评论
为什么被折叠?



