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

1.错误描述:

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

如下类型错误提示:

OpenCV3.X特征检测算法实现错误提醒:未定义标识符

 或

OpenCV3.X特征检测算法实现错误提醒:未定义标识符

 OpenCV3.X特征检测算法实现错误提醒:未定义标识符

 

 2.原因分析:

出现此类问题的原因是:

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

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

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

(4)其他原因

3.解决方案:

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

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

OpenCV3.X特征检测算法实现错误提醒:未定义标识符

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

OpenCV3.X特征检测算法实现错误提醒:未定义标识符

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

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

 Ptr 变量名 = 类::create();

例如:

OpenCV3.X特征检测算法实现错误提醒:未定义标识符

又如: 

 OpenCV3.X特征检测算法实现错误提醒:未定义标识符

 

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

问题解决! 

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

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

欢迎交流~

你可能感兴趣的:(OpenCV3,特征检测)