问题遇到的现象和发生背景
我的ply数据是二进制的,打开是乱码,我参考网上的方法进行了转化,但是它还有一些face元素没有转换成功,具体参考链接如下https://blog.csdn.net/qq_41102371/article/details/118034520
原博主的数据展示,也不包含element face,只有element vertex
问题相关代码,请勿粘贴截图
def ply_binary2ascii(file_full_name):
pointcloud_in = open3d.io.read_point_cloud(file_full_name)
open3d.io.write_point_cloud(filename=file_full_name, pointcloud=pointcloud_in, write_ascii=True)
print("transformed " + file_full_name + " from binary to ascii")
运行结果及报错内容
二进制
转换后的,原始是有282334个face的,但是这部分没有转换成功
我的解答思路和尝试过的方法
1.尝试用open3d读取face信息,然后再重新写入,但是方法可能没有找对,这个方法转换之后element face是0
2.尝试用plyfile读取face元素,然后写入,但是在face_data = list(elements[1].data)这一行一直报错,显示IndexError: tuple index out of range
我想要达到的结果
转换成功的ply文件,具体格式应该是这两者都包含的