点云技术相关产学研社区

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

扫一扫,访问微社区

查看: 3228|回复: 1

关于Harris3D关键点提取程序报错问题

[复制链接]
发表于 2013-11-23 19:37:41 | 显示全部楼层 |阅读模式
请问有那位同事或同学在调试pcl中提供的HarrisKeypoint3D相关函数发生
Expression: vector subcript out of range 问题,我追踪到程序内部,发现是在normal.compute()处报错,
我额外查询了pcl的maillist发现与我发生同样错误的人是有的,但都没有人回复,不知道这是不是一个很低级的问题,大家有人发生过这个问题吗?
回复

使用道具 举报

发表于 2013-12-1 16:32:50 | 显示全部楼层
好不容易刚调的例程能用了,我是用Win32、VS08和pcl1.5.1,开始编harris时也有错误。
后来我
先把最新库文件1.7.1里的harris_3d.h和harris_3d.hpp放入harris_keypoint_3d.h所在文件夹,并在执行程序harris_keypoint_extraction.cpp里包含以上harris_3d.h而不是harris_keypoint_3d.h;
再用宏定义使得windows下的max()和min()函数与标准库函数不发生冲突。
#ifndef NOMINMAX
#define NOMINMAX
。。。//所有包含文件内容
#endif
最后还要改一个错误:把result_set.h文件里727行(1.5.1版本)的默认构造函数UniqueResultSet()的私有成员初始化列表(:worst_distance_ std::numeric_limits<DistanceType>::max())去掉改成在默认构造函数赋值。至于为什么我也不知道,就是搜worst_distance时发现google给出的结果里面有这样的写法就改了试试。
{
worst_distance_ = std::numeric_limits<DistanceType>::max();
}
然后例程就可以编译通过了。不过用table_scene_lms400_downsampled.pcd作例子没提出点来,还要再试
回复 支持 反对

使用道具 举报

本版积分规则

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

GMT+8, 2024-5-4 07:25 , Processed in 6.420836 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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