python读取pcd文件_PCD文件格式转换脚本

标签:

在写一个重建算法的时候需要用到点坐标和法向的数据文件,于是向利用pcl中的法向计算模块来生成法向。输出后法向文件中包含曲率信息,但是这是不需要的。于是自己写了一个python小脚本实现格式转换。

#--coding:utf-8--

importtimeimportnumpy as npfrom sys importargv

script, input_file=argv

input_data= open(input_file,"r")

output_data= open("outdata.asc","w")

doc= ‘‘‘本脚本用于数据转换,将PCL生成的文件进行转换

输入为 点云数据+法向信息+曲率  PCD文件

输出为 点云数据+法向信息     ASC文件

转换后曲率信息被滤除,并将格式转换为通用的asc文件格式‘‘‘

print(doc)#转换函数

deftransform(input_data, output_data):

pointList=[]for line ininput_data:

data= line.split(" ")ifis_number(data[0]):

output_data.write("%f %f %f %f %f %f\n"

%((float)(data[0]),

(float)(data[1]),

(float)(data[2]),

(float)(data[3]),

(float)(data[4]),

(float)(data[5])))else:pass

#判断字符串是否为数字

defis_number(s):try:

float(s)returnTrueexceptValueError:pass

returnFalse

transform(input_data, output_data)

原文件内容为:

#.PCD v0.7 - Point Cloud Data file format

VERSION 0.7FIELDS x y z normal_x normal_y normal_z curvature

SIZE4 4 4 4 4 4 4TYPE F F F F F F F

COUNT1 1 1 1 1 1 1WIDTH26381HEIGHT1VIEWPOINT 0 0 010 0 0

POINTS26381DATA ascii52.713619 44.306831 2.500001 -0.67111164 -0.08553692 0.73640519 0.00061548286

52.54211 45.728249 2.500001 -0.67243981 -0.090179443 0.73463756 0.00069258711

52.30574 47.160099 2.500001 -0.67485178 -0.10609017 0.73028761 0.00043992131

52.022919 48.57592 2.500001 -0.67386091 -0.11686694 0.72955716 0.00037569425

51.720371 49.97781 2.500001 -0.66632128 -0.11713342 0.73640722 0.00062433031

51.405071 51.394611 2.500001 -0.65537727 -0.11913724 0.74584651 0.00090703077

51.068241 52.847191 2.500001 -0.6404919 -0.1198745 0.75855136 0.001082067

50.717159 54.314861 2.500001 -0.62284762 -0.120147 0.77306247 0.0012497745

50.349918 55.789589 2.500001 -0.60351694 -0.12188542 0.7879793 0.0013898062

49.98164 57.264919 2.500001 -0.56129658 -0.1375796 0.81609923 0.0014789379

49.60405 58.715778 2.500001 -0.53091556 -0.14410463 0.83508235 0.0021452638

49.167542 60.149521 2.500001 -0.45673963 -0.16522408 0.87412238 0.0064957533

48.665119 61.58548 2.500001 -0.27892584 -0.12767911 0.95178694 0.015811486

转换后的文件内容为:

52.713619 44.306831 2.500001 -0.671112 -0.085537 0.736405

52.542110 45.728249 2.500001 -0.672440 -0.090179 0.734638

52.305740 47.160099 2.500001 -0.674852 -0.106090 0.730288

52.022919 48.575920 2.500001 -0.673861 -0.116867 0.729557

51.720371 49.977810 2.500001 -0.666321 -0.117133 0.736407

51.405071 51.394611 2.500001 -0.655377 -0.119137 0.745847

51.068241 52.847191 2.500001 -0.640492 -0.119874 0.758551

50.717159 54.314861 2.500001 -0.622848 -0.120147 0.773062

50.349918 55.789589 2.500001 -0.603517 -0.121885 0.787979

49.981640 57.264919 2.500001 -0.561297 -0.137580 0.816099

49.604050 58.715778 2.500001 -0.530916 -0.144105 0.835082

49.167542 60.149521 2.500001 -0.456740 -0.165224 0.874122

48.665119 61.585480 2.500001 -0.278926 -0.127679 0.951787

48.067780 62.904530 2.500001 -0.263447 -0.142550 0.954083

47.309990 63.906979 2.500001 -0.082274 -0.155248 0.984443

46.385601 64.398064 2.500001 -0.025878 -0.196875 0.980087

45.383808 64.317551 2.500001 0.015420 -0.199873 0.979701

44.408440 63.701160 2.500001 -0.232693 0.125587 -0.964408

43.552479 62.677849 2.500001 -0.300091 0.156567 -0.940974

42.826420 61.414768 2.500001 -0.369369 0.196475 -0.908275

42.207859 60.036179 2.500001 -0.555614 0.201118 -0.806749

41.684139 58.620060 2.500001 -0.607999 0.191823 -0.770416

标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值