起因

由于自己大部分的点云文件都是.asc格式的,但最近用pcl做点云方面的研究,从asc文件到pcd文件手动转化太麻烦,而且效率较低,故此写一个不太成熟的python脚本实现从asc文件到pcd格式文件的转换。

ps:此脚本只适用于ASCII编码的文件,并且只适用于散乱点云

着手写作

分析pcd文件的格式可知,从asc到pcd转换最根本要求就是其文件开头符合pcd格式要求,其中最主要的问题是的是如何动态设置WIDTH和POINTS的值,对于散乱点云,这两个值都可以表示点数.点数的获得可用asc文件的行数表示.

代码如下:

#coding:utf-8

import time

from sys import argv

script ,filename = argv

print ("the input file name is:%r." %filename)

start = time.time()

print ("open the file...")

file = open(filename,"r+")

count = 0

#统计源文件的点数

for line in file:

count=count+1

print ("size is %d" %count)

file.close()

#output = open("out.pcd","w+")

f_prefix = filename.split('.')[0]

output_filename = '{prefix}.pcd'.format(prefix=f_prefix)

output = open(output_filename,"w+")

list = ['# .PCD v.5 - Point Cloud Data file format\n','VERSION .5\n','FIELDS x y z\n','SIZE 4 4 4\n','TYPE F F F\n','COUNT 1 1 1\n']

output.writelines(list)

output.write('WIDTH ') #注意后边有空格

output.write(str(count))

output.write('\nHEIGHT')

output.write(str(1)) #强制类型转换,文件的输入只能是str格式

output.write('\nPOINTS ')

output.write(str(count))

output.write('\nDATA ascii\n')

file1 = open(filename,"r")

all = file1.read()

output.write(all)

output.close()

file1.close()

end = time.time()

print ("run time is: ", end-start)

实例

以20万左右的点云为例,该脚本运行时间大约在0.14s左右,基本可以满足自己的需求

运行以上脚本,便可自动将example.asc转化为example.pcd

python处理点云数据_python将指定点云文件(asc)转换为PCD格式相关推荐

  1. python抓取表格数据_Python如何实现从PDF文件中爬取表格数据(代码示例)

    本篇文章给大家带来的内容是关于Python如何实现从PDF文件中爬取表格数据(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 本文将展示一个稍微不一样点的爬虫. 以往我们的 ...

  2. 多帧点云数据拼接合并_PCL点云处理实践(二):点云的处理和拼接

    滤除背景 我们获得的点云可能包含一部分背景的点云.要去除背景,只保留人体信息,最简单的方式是使用直通滤波器滤除较远点.这部分代码如下:1 2 3 4 5 6pcl::PassThrough<:p ...

  3. 华云数据“上药控股混合云平台”荣获“2021年度混合云优秀案例”

    12月23日,由中国信息通信研究院.中国通信标准化协会主办的2021混合云大会盛大召开.政府主管们领导.协会知名专家.行业企业代表汇聚一堂,围绕混合云架构与应用场景.多云管理平台.云网能力.行业混合云 ...

  4. 【ASE+python】实现将poscar格式文件批量转换为xsd格式文件

    将poscar格式文件批量转换为xsd格式文件 ASE介绍 ASE安装 ASE的ase.io.read()与ase.io.write() ase.io.read() ase.io.write() 单份 ...

  5. python删除一列数据_python删除txt第一列数据库

    带你读<Python数据分析与数据化运营(第2版)>之一:Python和数据化运营 点击查看第二章点击查看第三章Python数据分析与数据化运营(第2版) 宋天龙 著 第1章 Python ...

  6. python删除某列数据_python删除txt第一列数据库

    带你读<Python数据分析与数据化运营(第2版)>之一:Python和数据化运营 点击查看第二章点击查看第三章Python数据分析与数据化运营(第2版) 宋天龙 著 第1章 Python ...

  7. python怎么筛选excel数据_python筛选数据excel表格-如何利用python提取两个excel对比后的重复值的信息?...

    怎么用python读取excel表格的数据 import xlrd #open the .xls file xlsname="test.xls" book = xlrd.open_ ...

  8. python编程处理excel数据_python实现对excel进行数据剔除操作实例

    前言 学习Python的过程中,我们会遇到Excel的各种问题.下面这篇文章主要给大家介绍了关于python对excel进行数据剔除操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详 ...

  9. python抓取数据库数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

最新文章

  1. 如何列出Git 1.7+中的所有远程分支?
  2. JQuery-- 获取元素的宽高、获取浏览器的宽高和垂直滚动距离
  3. Cisco堆叠交换机序号的改变
  4. JS标签的各种事件的举例
  5. Codeforeces 954C Matrix Walk
  6. 分布式架构的session问题
  7. 阿里微服务架构下分布式事务Seata
  8. android 去掉标题栏、状态栏、横屏
  9. 华为申请注册姚安娜商标
  10. golang 时间戳_go语言学习笔记(13)-defer函数、字符串常用函数和时间日期函数...
  11. android 权限组件设计
  12. Python学习日记(初级篇01基础语法)——黑马程序员视频学习笔记
  13. EDEM后处理导出颗粒信息
  14. (VS2008)Cannot open include file: 'windows.h': No such file or directory 解决办法
  15. Android热修复技术——QQ空间补丁方案解析(2)
  16. 手机信息通知标为已读实现原理_27条iPhone苹果(附iPhoneX)手机使用技巧,你用过多少条?...
  17. python自动化测试平台方案_基于Python的软件测试自动化平台研究
  18. Kettle 3.2 连接 SQL Server 2008
  19. ceilometer+gnocchi+influxdb
  20. 用python做一个上位机串口通信_PYTHON制作画加书法源程序

热门文章

  1. 见山是山,见山不是山,见山只是山
  2. 软链接解决存储空间不足
  3. Windows显卡切换
  4. 北京游玩攻略,-怎么游玩清华北大
  5. 教学案例一python初探
  6. 无穷小进课堂,历史在召唤
  7. 嵌入式设备NFS挂载目录(基于iTop 4412)
  8. python识别二维码条形码?用pyzbar一招搞掂(含代码)!
  9. Trait method *** has not been applied, because there are collisions with other trait methods on
  10. 深度解析IPFS是什么