OpenCV3.X特征检测算法实现错误提醒:未定义标识符 "OrbFeatureDetector"类型或不允许使用抽象类类型 "cv::xfeatures2d::SURF类型错误的通用型解决方法

1.错误描述:

使用OpenCV3.X进行特征检测类算法实现,使用SIFT、SURF、ORB算法函数进行例程学习改进时,参考学习别人的例程时,经常出现错误提示:未声明的标识符:SurfFeatureDetector”,或

如下类型错误提示:

 或

 

 

 2.原因分析:

出现此类问题的原因是:

(1)OpenCV3.X中,xfeature2d模块作为一个独立的模块,转移到独立的第三方库中,官方发行的OpenCV3中并没有包含;

(2)若使用的是源码编译,并确认已经编译xfeature2d模块库进去;或者其他方式的已包含xfeature2d算法模块;那么问题可能就是:没有正确的包含文件路径;

(3)没有正确的使用类,类型使用错误或者不合规范。

(4)其他原因

3.解决方案:

(1)检查使用环境与配置情况:确保已包含xfeature2d第三方库;查询方法参考:

找到安装目录,include文件夹下opencv2文件中查看,如图所示:

(2) 在你的项目程序中正确包含头文件路径,参考如下:具体看个人配置环境目录路径

(3)正确使用类型名/类名/智能指针/构造函数:

可将对应变量改成如下形式:

 Ptr<xfeature2d库中类的变量类型> 变量名 = 类::create();

例如:

又如: 

 

 

编译——>运行——>正常!

问题解决! 

提示:若以上方法还不能解决此类问题,多半是环境配置的原因,请着重检查!

本人测试环境:Win10-X64  : VS2013+OpenCV3.4.3+opencv_contrib3.4.3

欢迎交流~

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值