点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 3385|回复: 4

PCL读入pcd文件

[复制链接]
发表于 2016-5-13 09:19:54 | 显示全部楼层 |阅读模式
我的pcd文件不是通过程序生成的,是自己写入的,但是运行程序后出现failed to find match for field x;
                                                                                                               failed to find match for field y;
                                                                                                               failed to find match for field z;
这是怎么回事?pcd文件的格式是对的,是因为是自己写的原因吗?
pcd文件如下:
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z
SIZE 8 8 8
TYPE F F F
COUNT 1 1 1
WIDTH 55061
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 55061
DATA binary
165.910849 111.848930 855.473457
232.670594 148.455302 1272.738956
232.670594 148.455302 1272.738956
411.064056 234.325784 1998.515717
204.980852 117.416033 1146.516911
204.980852 117.416033 1146.516911

回复

使用道具 举报

发表于 2016-5-13 10:20:13 | 显示全部楼层
你读取数据时,用的数据类型包含了rgb字段,但你的数据没有。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-17 09:14:13 | 显示全部楼层
mypcl 发表于 2016-5-13 10:20
你读取数据时,用的数据类型包含了rgb字段,但你的数据没有。

我想生成带有rgb值的pcd文件,但是生成之后rgb值都显示为0,是怎么回事?
回复 支持 反对

使用道具 举报

发表于 2016-5-17 13:16:15 | 显示全部楼层
xuanzijiejie 发表于 2016-5-17 09:14
我想生成带有rgb值的pcd文件,但是生成之后rgb值都显示为0,是怎么回事?

rgb值怎么来的?你没设置,默认应该为0吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-18 10:24:49 | 显示全部楼层
不不不,我都有数值的,数据格式是这样的:
-3259.085577 2468.754169 11669.701132 35.000000 6.000000 4.000000
1833.046503 246.261776 7804.729798 24.000000 2.000000 3.000000
-1865.166238 1903.464949 6142.164564 21.000000 1.000000 2.000000
1169.635670 919.226091 5661.024305 34.000000 3.000000 3.000000
前面三列是三维坐标,后面三列分别为r,g,b值,用了RGB的加包的代码:
int r=109,g=114,b=134;
int rgb = ((int)r << 16 | (int)g << 8 | (int)b); //<<16为左移16位,int型数据共有32位。
float frgb = *reinterpret_cast<float*>(&rgb);
但是生成的pcd文件中rgb值仍然为0,很是郁闷,不知为啥
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-5-14 18:22 , Processed in 1.198086 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表