PCD文件去除曲率的脚本
在写一个重建算法的时候需要用到点坐标和法向的数据文件,于是向利用pcl中的法向计算模块来生成法向。输出后法向文件中包含曲率信息,但是这是不需要的。于是自己写了一个python小脚本实现格式转换。
#--coding:utf-8-- import time
import numpy as np
from sys import argv script, input_file = argv input_data = open(input_file,"r") output_data = open("outdata.asc","w") doc = '''
本脚本用于数据转换,将PCL生成的文件进行转换
输入为 点云数据+法向信息+曲率 PCD文件
输出为 点云数据+法向信息 ASC文件
转换后曲率信息被滤除,并将格式转换为通用的asc文件格式
''' print(doc) #转换函数
def transform(input_data, output_data):
pointList = [] for line in input_data: data = line.split()
if is_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 #判断字符串是否为数字
def is_number(s):
try:
float(s)
return True
except ValueError:
pass return False transform(input_data, output_data)
原文件内容为:
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z normal_x normal_y normal_z curvature
SIZE 4 4 4 4 4 4 4
TYPE F F F F F F F
COUNT 1 1 1 1 1 1 1
WIDTH 26381
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 26381
DATA ascii
52.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
将该文件命名为transfor.py并在终端执行指令:
$python transfor.py input.pcd
Python中的split函数的默认参数是空格, 即对每行数据安装空格分割, 不管空格的数量是一个还是多个, 全部忽略. 但是一旦添加自定义的参数, 则严格按照定义参数分割. 比如, 当定义的参数为一个空格时, 将按一个空格分割, 两个空格时将按两个空格分割. 该处需要注意.
转换后的文件内容为:
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
PCD文件去除曲率的脚本的更多相关文章
- doc或docx(word)或image类型文件批量转PDF脚本
doc或docx(word)或image类型文件批量转PDF脚本 1.实际生产环境中遇到文件展示只能适配PDF版本的文件,奈何一万个文件有七千个都是word或者image类型的,由此搞个脚本批量转换下 ...
- [No00007A]没有文件扩展".js"的脚本引擎 解决办法
在命令行运行JScript脚本时,遇到如下的错误提示: “输入错误: 没有文件扩展“.js”的脚本引擎.” 这样的错误,原因是因为JS扩展名的文件被其他软件关联了,需要取消关联. 如系统中安装了ULT ...
- (一)读取PCD文件
下面是一个简单的读取PCD文件并显示的代码: #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/p ...
- 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)
一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...
- 没有文件扩展".js"的脚本引擎 解决办法
在命令行运行JScript脚本时,遇到如下的错误提示: “输入错误: 没有文件扩展“.js”的脚本引擎.” 这样的错误,原因是因为JS扩展名的文件被其他软件关联了,需要取消关联. 如系统中安装了ULT ...
- Linux系统下定时上传文件至FTP服务器脚本
环境:Red Hat Enterprise Linux Server release 6.4 需求:需要将Oracle数据库的定时备份上传至FTP服务器 1.干货,用户名:oracle,数据库名称:X ...
- PCL点云库中怎样读取指定的PCD文件,又一次命名,处理后保存到指定目录
我一直想把处理后的pcd文件重命名,然后放到指定的目录,尝试了好久最终做到了: 比方我想读取 "table_scene_lms400.pcd" 把它进行滤波处理,重命名为 &qu ...
- 没有文件扩展“.js”的脚本引擎问题解决
安装MinGW的时候提示没有文件扩展".js"的脚本引擎. 原因:系统安装Dreamwear.UltraEdit.EditPlus后修改了.js文件的默认打开方式.当想直接执行js ...
- PCD文件格式详解及在PCL下读取PCD文件
一.PCD简介 1.1 PCD版本 在点云库PCL 1.0发布之前,PCD文件格式就已经发展更新了许多版本.这些新旧不同的版本用PCD_Vx来编号(例如PCD_V5.PCD_V6和PCD_V7等),分 ...
随机推荐
- Eclipse 安装 SVN 的在线插件
这是继上次svn 客户端与服务器安装后的如何在Eclipse 环境下在线安装 SVN插件,我的Eclipse版本是4.50 SVN的在线安装 下面为大家提供SVN 的在线安装教程.下面是安装的 详细过 ...
- LinqToDB 源码分析——设计原理
我们知道实现了IQueryable<T>接口和IQueryProvider接口就可以使用Linq To SQL的功能.关于如何去实现的话,上一章也为我们引导了一个方向.LinqToDB框架 ...
- [WinForm]WinForm跨线程UI操作常用控件类大全
前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...
- C#——字段和属性
//我的C#是跟着猛哥(刘铁猛)(算是我的正式老师)<C#语言入门详解>学习的,微信上猛哥也给我讲解了一些不懂得地方,对于我来说简直是一笔巨额财富,难得良师! 在刚开始学习属性这一节时,开 ...
- C#开发微信门户及应用(32)--微信支付接入和API封装使用
在微信的应用上,微信支付是一个比较有用的部分,但也是比较复杂的技术要点,在微商大行其道的年代,自己的商店没有增加微信支付好像也说不过去,微信支付旨在为广大微信用户及商户提供更优质的支付服务,微信的支付 ...
- 【Oracle基本操作1】 数据库的新建删除
一.新建数据库 1.新建数据库. 1.1打开 Database Configuration Assistant : 1.2选择新建数据库,下一步,选第一个"一般用途或事物处理": ...
- 一段良好的程序永远不应该发生panic异常
panic来自被调函数的信号,表示发生了某个已知的bug.一段良好的程序永远不应该发生panic异常 对于大部分程序而言,永远无法保证能够成功运行,因为错误原因往往超出程序员的控制范围.任何进行io操 ...
- JAVA Thread线程异常监控
一.场景描述:单线程程序可以用try...catch捕获程序的异常,而在多线程程序的时候是无法使用try...catch捕获. 示例1:多线程发生异常,无法使用try...catch捕获问题 publ ...
- C++01.类的引入
1.假设我们要输出张三,李四两个人的基本信息,包括姓名,年龄,可以用以下的C程序实现: eg: #include <stdio.h> int main(int argc,char **ar ...
- 使用PowerShell修改操作系统“环境变量”
有时候我们需要命令行工具,但在使用前往往需要先导航至命令工具所在的目录,比如:stsadm 我们首先需要导航至(以SharePoint2013为例):C:\Program Files\Common ...