用python读写pcl.pcd文件。
pypcd的Python项目详细描述
`` Pypcd``
==
什么?
----
pure python模块读取和写入点云存储在
`pcd文件格式<;http://point clouds.org/documentation/tutorials/pcd_file_format.php>;` ` ` `,
--BR/> BR/>你想在不写C++的BR/>的情况下搞乱你的点云数据,等待模板重写PCL代码的等待时间。
BR/>你试图得到一些Python绑定,用于PCL编译
并且刚刚放弃。
BR/>它是如何工作的?
----
它解析PCD头并将数据(无论是"ascii"格式、
"binary"格式还是"binary"压缩格式)加载为
"numpy<;http://www.numpy.org>;`"结构化数组"。它创建了一个``point cloud`
类的
实例,将点云数据作为``pc_data```包含,并为i/o和元数据访问提供了一些方便的函数。
有关点云结构的一些信息,请参阅``pypcd.py``中的注释。
代码::python
import pypcd
]-=pc.pc_data['x'].mean()
代码::bash
pip安装pypcd
就这样!您可能需要安装可选的依赖项,例如"pandas
<;https://pandas.pydata.org>;`。
您还可以克隆此repo并使用setup.py。
…代码::bash
不是依赖项。
您不需要使用catkin安装此软件包--使用"pip"应该没问题--
,但如果您想这样做的话:
步骤:
代码::bash
做这样的事:
…代码::python
import pypcd
import rospy
from sensor_msgs.msg import pointcloud2
def cb(msg):
pc=pointcloud.from_msg(msg)
pc.save('foo.pcd',compression='binary_compressed')
pc.pc_data['x']*=-1
outmsg=pc.to_msg()
您可能需要设置头
outmsg.header=msg.header
pub.publish(outmsg)
…
sub=rospy.subscriber('incloud',pointcloud2)
pub=rospy.publisher('outcloud',pointcloud2,cb)
rospy.init('pypcd_node')
rospy.spin()
这是漂亮的、可生产的代码吗?
----------
没有。
它还能做什么?
---------
随着时间的推移,有一堆功能已经积累起来了,其中大部分功能还未经过测试。
没有特别的顺序,
-支持"ascii"、"binary"和"binary"压缩数据。
后者需要"lzf"模块。
-解码和加密将rgb赋成单个"float32"数字。如果
你不知道我在说什么,就认为自己很幸运。
-将云指向"pandas<;https://pandas.pydata.org>;""dataframes"。
这尤其有用,
由于"pandas"功能强大,使得各种操作(如合并点云或操作值)变得容易。
从概念上讲,数据帧与点云格式非常匹配,因为
实际上许多点云具有异构数据类型-例如
` x`,`y`和`z`是浮点数字段,而'label`是整数。
-转换到和从'ros<;http://www.ros.org>;``upou pointcloud2
消息。
需要安装有python绑定的ros``sensor`msgs``包。
此功能使用jon binney und开发的代码er
bsd许可证,包含为"numpy pc2.py"。
它不能做什么?
---------
"点云"中的元数据字段与"PC数据"中的数据之间没有同步。如果不更新元数据字段就改变"PC数据"的形状,就会遇到麻烦。
r/>
虽然填充和计数大于1的字段似乎可以工作,但这是PCD格式的一个特殊方面,因此要小心。
如果您想安全,最好不要使用这两种格式——只需将字段的每个组件命名为像"field"00"、"field_01```,等等。
它也不能在python 3上运行,但是有一个pr可以解决这个问题,这个问题可能在不久的将来会被解决。
----
---------------------------------------
谢谢!您可以提交拉取请求。但老实说,我不太善于跟上github的步伐:(
---
-各种操作都有更好的api。
-清理、清除cruft。
-为文件类型转换等常见用例添加一个cli。
-更好地支持结构化点云和测试.
-更好的测试。
-更好的文档。更多示例。
-更多填充测试
-改进多计数字段的处理
-更好地支持rgb无意义
-导出到ply?
-找出是否可以将"pointcloud"用作单个单词。
-在pypi中打包数据资产?
credits
----
通过查看
`Matlab
PCL<;https://www.mathworks.com/matlabcentral/fileexchange/40382-Matlab-to-point-cloud-library了解压缩点云数据的代码?requesteddomain=true>;` `.
@wkentaro进行一些小的更改。
w.ros.org>;` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `--
*在pypi上首次发布。
==
什么?
----
pure python模块读取和写入点云存储在
`pcd文件格式<;http://point clouds.org/documentation/tutorials/pcd_file_format.php>;` ` ` `,
--BR/> BR/>你想在不写C++的BR/>的情况下搞乱你的点云数据,等待模板重写PCL代码的等待时间。
BR/>你试图得到一些Python绑定,用于PCL编译
并且刚刚放弃。
BR/>它是如何工作的?
----
它解析PCD头并将数据(无论是"ascii"格式、
"binary"格式还是"binary"压缩格式)加载为
"numpy<;http://www.numpy.org>;`"结构化数组"。它创建了一个``point cloud`
类的
实例,将点云数据作为``pc_data```包含,并为i/o和元数据访问提供了一些方便的函数。
有关点云结构的一些信息,请参阅``pypcd.py``中的注释。
代码::python
import pypcd
]-=pc.pc_data['x'].mean()
代码::bash
pip安装pypcd
就这样!您可能需要安装可选的依赖项,例如"pandas
<;https://pandas.pydata.org>;`。
您还可以克隆此repo并使用setup.py。
…代码::bash
不是依赖项。
您不需要使用catkin安装此软件包--使用"pip"应该没问题--
,但如果您想这样做的话:
步骤:
代码::bash
做这样的事:
…代码::python
import pypcd
import rospy
from sensor_msgs.msg import pointcloud2
def cb(msg):
pc=pointcloud.from_msg(msg)
pc.save('foo.pcd',compression='binary_compressed')
pc.pc_data['x']*=-1
outmsg=pc.to_msg()
您可能需要设置头
outmsg.header=msg.header
pub.publish(outmsg)
…
sub=rospy.subscriber('incloud',pointcloud2)
pub=rospy.publisher('outcloud',pointcloud2,cb)
rospy.init('pypcd_node')
rospy.spin()
这是漂亮的、可生产的代码吗?
----------
没有。
它还能做什么?
---------
随着时间的推移,有一堆功能已经积累起来了,其中大部分功能还未经过测试。
没有特别的顺序,
-支持"ascii"、"binary"和"binary"压缩数据。
后者需要"lzf"模块。
-解码和加密将rgb赋成单个"float32"数字。如果
你不知道我在说什么,就认为自己很幸运。
-将云指向"pandas<;https://pandas.pydata.org>;""dataframes"。
这尤其有用,
由于"pandas"功能强大,使得各种操作(如合并点云或操作值)变得容易。
从概念上讲,数据帧与点云格式非常匹配,因为
实际上许多点云具有异构数据类型-例如
` x`,`y`和`z`是浮点数字段,而'label`是整数。
-转换到和从'ros<;http://www.ros.org>;``upou pointcloud2
消息。
需要安装有python绑定的ros``sensor`msgs``包。
此功能使用jon binney und开发的代码er
bsd许可证,包含为"numpy pc2.py"。
它不能做什么?
---------
"点云"中的元数据字段与"PC数据"中的数据之间没有同步。如果不更新元数据字段就改变"PC数据"的形状,就会遇到麻烦。
r/>
虽然填充和计数大于1的字段似乎可以工作,但这是PCD格式的一个特殊方面,因此要小心。
如果您想安全,最好不要使用这两种格式——只需将字段的每个组件命名为像"field"00"、"field_01```,等等。
它也不能在python 3上运行,但是有一个pr可以解决这个问题,这个问题可能在不久的将来会被解决。
----
---------------------------------------
谢谢!您可以提交拉取请求。但老实说,我不太善于跟上github的步伐:(
-各种操作都有更好的api。
-清理、清除cruft。
-为文件类型转换等常见用例添加一个cli。
-更好地支持结构化点云和测试.
-更好的测试。
-更好的文档。更多示例。
-更多填充测试
-改进多计数字段的处理
-更好地支持rgb无意义
-导出到ply?
-找出是否可以将"pointcloud"用作单个单词。
-在pypi中打包数据资产?
credits
----
通过查看
`Matlab
PCL<;https://www.mathworks.com/matlabcentral/fileexchange/40382-Matlab-to-point-cloud-library了解压缩点云数据的代码?requesteddomain=true>;` `.
@wkentaro进行一些小的更改。
w.ros.org>;` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `--
*在pypi上首次发布。