1、有numpy就能运行,假如需要转换的TXT文件有header,需要删除header才能运行; 2、直接运行代码,按运行提示输入TXT文件路径和PCD文件保存路径即可,不需要修改代码。
import os
import sys
import numpy as np
def creat_pcd(input_path, output_path):
Full_Data = np.loadtxt(input_path)
if os.path.exists(output_path):
os.remove(output_path)
Output_Data = open(output_path, 'a')
Output_Data.write('# .PCD v0.7 - Point Cloud Data file format\nVERSION 0.7\nFIELDS x y z rgba\nSIZE 4 4 4 4\nTYPE F F F U\nCOUNT 1 1 1 1')
string = '\nWIDTH ' + str(Full_Data.shape[0])
Output_Data.write(string)
Output_Data.write('\nHEIGHT 1\nVIEWPOINT 0 0 0 1 0 0 0')
string = '\nPOINTS ' + str(Full_Data.shape[0])
Output_Data.write(string)
Output_Data.write('\nDATA ascii')
for j in range(Full_Data.shape[0]):
R=Full_Data[j,3]
G=Full_Data[j,4]
B=Full_Data[j,5]
value = (int(R) << 16 | int(G) << 8 | int(B))
string = ('\n' + str(Full_Data[j,0]) + ' ' + str(Full_Data[j, 1]) + ' ' +str(Full_Data[j, 2]) + ' ' + str(value))
Output_Data.write(string)
Output_Data.close()
print('--------------Completed--------------')
a = input("请输入TXT文件路径:")
b = input("请输入PCD文件保存路径:")
creat_pcd(a, b)
参考链接
|