python将.obj格式转换成.pcd格式
Posted 王张飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python将.obj格式转换成.pcd格式相关的知识,希望对你有一定的参考价值。
#使用pointne
t训练数据之后,输出的数据格式为.obj
文件,该脚本使用python
可以将.obj
转化成.pcd
格式
python将.obj转换成.pcd格式
运行环境: windows10
, python3.5.2
,python3-pip
功能说明:创建空白文件夹workpace
,创建文件obj2pcd_py.py
,将代码复制到obj2pcd_py.py
,在脚本所在目录创建data
文件夹,将.obj
文件放入到data
中,运行脚本。(在data中自动创建pcd文件目录)
详细代码:
import os
import numpy as np
import sys
import shutil
filedir = os.path.dirname(sys.argv[0])
os.chdir(filedir)
wdir = os.getcwd()
print('当前工作目录为:\\n'.format(wdir))
for parent,dirs,files in os.walk(wdir):
print(dirs)
if 'data' in parent:
os.chdir('data')
os.mkdir('pcd_files')
#os.mkdir('pcd_files')
for file in files:
prefix = file.split('.')[0]
#f = open('0_pred.obj','rb')
new_name = prefix + '.' + 'pcd'
print(new_name)
f = open(new_name,'w')
num_lines = sum(1 for line in open(file))
print(num_lines)
#pcd的数据格式 https://blog.csdn.net/BaiYu_King/article/details/81782789
f.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 \\n' )
f.write('WIDTH \\nHEIGHT 1 \\nVIEWPOINT 0 0 0 1 0 0 0 \\n'.format(num_lines))
f.write('POINTS \\nDATA ascii\\n'.format(num_lines))
f1 = open(file,'rb')
#f2 = open('new_book.pcd','w')
lines = f1.readlines()
a = []
for line in lines:
line1 = line.decode()
new_line = line1.split(' ')[1] + ' ' + line1.split(' ')[2] + ' ' + line1.split(' ')[3] + ' ' + line1.split(' ')[4] + ' ' + line1.split(' ')[5] + ' ' + line1.split(' ')[6]
#new_line = line.split(' ')[1]
#f2.write(new_line)
f.write(new_line)
f.close()
shutil.move(new_name,'pcd_files')
脚本所在目录:
.obj文件所在目录,创建.pcd之后的文件目录:
以上是关于python将.obj格式转换成.pcd格式的主要内容,如果未能解决你的问题,请参考以下文章
点云格式转换:pcd点云转txt点云 (XYZXYZIXYZRGB)
点云格式转换:pcd点云转txt点云 (XYZXYZIXYZRGB)
点云格式转换:txt点云转pcd点云(XYZXYZIXYZRGBXYZIRGBGpstime)
点云格式转换:txt点云转pcd点云(XYZXYZIXYZRGBXYZIRGBGpstime)