请选择 进入手机版 | 继续访问电脑版

点云技术相关产学研社区

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

扫一扫,访问微社区

查看: 21964|回复: 6

Opencv+PCL=Flann 冲突?

[复制链接]
发表于 2013-5-8 01:14:16 | 显示全部楼层 |阅读模式
大家好!
最近编程需要用到pcl库的cloud alignment. 可是将pcl加入opencv程序后出现了flann冲突。

opencv程序加入pcl头文件:
#include <pcl/registration/icp.h>
冲突出现
具体错误代码:
F:\Program Files\PCL 1.5.1\include\pcl-1.5\pcl/kdtree/kdtree_flann.h(75) : error C2653: “flann”: 不是类或命名空间名称
网上搜索了挺多,尝试了注释掉
using namespace cv;
using namespace pcl;
添加 cv::    pcl::
错误任然出现。

国外论坛有很多人讨论这个问题,类似帖子:
1.http://stackoverflow.com/questions/12481208/opencv-and-pcl-conflict
2.http://stackoverflow.com/questions/11918504/pcl-opencv-and-flann-conflict;
帖2提及的解决方法貌似有效,但小弟不才,不太明白将../include/opencv2/flann 改为 flanncv后,如何将包含此目录的头文件更新路径。这设计到了多少头文件啊?小弟怕更改后opencv库使用出错。还望有经验的兄弟详细告知步骤。十分感谢!


回复

使用道具 举报

 楼主| 发表于 2013-5-8 02:59:16 | 显示全部楼层
看了几篇国外大牛的帖子,终于找到解决方法。
首先,注意添加include路径顺序, 先pcl库后opencv
然后,编译会遇到错误代码:lines that were complaining about 'flann' : ambiguous symbol
          could be 'flann'
          or 'cv::flann'
表明flann有歧义,pcl和opencv都使用,产生了冲突。
最后,在错误处给flann前加::作用域运算符,限制其作用域。估计错误应该就能搞定。

附:混合多个函数库时尽量使用如std::  cv:: pcl:: 等来代替 使用 using namespace std,using namespace pcl,using namespace cv。
回复 支持 反对

使用道具 举报

发表于 2013-5-8 13:25:16 | 显示全部楼层
依然搞笑 发表于 2013-5-8 02:59
看了几篇国外大牛的帖子,终于找到解决方法。
首先,注意添加include路径顺序, 先pcl库后opencv
然后,编 ...

谢谢分享,非常有帮助!:)
回复 支持 反对

使用道具 举报

发表于 2014-5-6 20:21:20 | 显示全部楼层
依然搞笑 发表于 2013-5-8 02:59
看了几篇国外大牛的帖子,终于找到解决方法。
首先,注意添加include路径顺序, 先pcl库后opencv
然后,编 ...

你的解决了吗?我试了下 还是有conflict啊
回复 支持 反对

使用道具 举报

发表于 2014-5-23 16:52:06 | 显示全部楼层
好!!!
回复 支持 反对

使用道具 举报

发表于 2014-7-7 17:20:25 | 显示全部楼层
:victory:楼主厉害,我也遇到过相同的问题,但我直接在项目中把OPENCV 的包含目录去掉了,下次用楼主的方法试试
回复 支持 反对

使用道具 举报

发表于 2018-5-28 16:36:07 | 显示全部楼层
依然搞笑 发表于 2013-5-8 02:59
看了几篇国外大牛的帖子,终于找到解决方法。
首先,注意添加include路径顺序, 先pcl库后opencv
然后,编 ...

LZ你好,我在做QT下加FLANN时出现以下问题:
1>d:\qt\5.7\msvc2013_64\include\qtcore\qvariant.h(387): error C2872: “uchar”: 不明确的符号
1>          可能是“D:\Qt\5.7\msvc2013_64\include\QtCore/qglobal.h(210) : unsigned char uchar”
1>          或       “C:\Program Files\PCL 1.8.0\3rdParty\FLANN\include\flann/util/matrix.h(41) : flann::uchar”
感觉和你遇到的问题一样,但是按照你的步骤,编译仍然不通过,能帮忙看一下吗,谢谢,期待你的回复
回复 支持 反对

使用道具 举报

本版积分规则

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

GMT+8, 2024-3-29 16:19 , Processed in 2.295929 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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