在sift算法实现中,出现了这个问题
出现问题:vs2015opencvvs2015projectmodemodesift算法1.cpp(3): fatal error C1083: 无法打开包括文件: “opencv2/nonfree/features2d.hpp”: No such file or directory
解决方案:
opencv在3.0版本后sift等一些非免费开源的方法和函数被放到到了opencv_contrib库里,所以直接用opencv调用sift相关函数是无法加载的,需要自己Cmake源代码生成包含opencv_contrib的库;
其中有opencv3.2的自解压windows包,下载地址为:https://opencv.org/opencv-3-2.html
opencv_contrib-3.2.0.zip压缩包,下载地址为:https://github.com/opencv/opencv_contrib/releases
CMake可视化编译工具,需要自己下载安装
protobuf-cpp-3.1.0.tar.gz时谷歌的文本协议工具,需要翻墙下载,在编译的时候下载容易因为无法下载出错,所以提前下载:https://github.com/google/protobuf/releases?after=v3.2.1
安装相关步骤: https://blog.csdn.net/weixin_37800680/article/details/72566294 https://blog.csdn.net/KYJL888/article/details/74332710 https://blog.51cto.com/joekeji/1917226 //这个安装介绍的最详细,我是以这个为主
安装过程中错误和重要步骤提醒:
1.这里的vs版本和电脑位数一定要选对
2.这里一定要选对opencv_contrib源码包中的modules目录位置
3、在vs2015上的设置与再生成
第一个坑:
这里出错:
VS 编译后 install报错(error MSB3073):https://blog.csdn.net/weixin_30869099/article/details/97188900
这一步很容易出错;我花了一天才弄好,具体见我的博文:
opencv3.2.0+opencv_contrib-3.2.0+vs2015相关文件的配置
4.install生成后,重新建项目,搭建新环境出错:
环境配置可参考:
win7+VS2015+opencv3.2.0 安装配置坑点详解LINK ERROR 1104
但是我的还是出错了。提示我:
无法打开文件“opencv_aruco320d.lib”
我的路径都是对的,但是就是提示打不开;
解决:(1)系统变量没有添加;
(2)添加依赖项直接复制网上的,依赖项后面很可能有空格或者其他不能识别,直接导致找不到;
可以复制完后,删除空白位置;
(3)上述两步都做了;但是还是会出错。
解决:这种问题最简单粗暴的方法,是把相关的dll都拷贝到Windows操作系统的目录下。如果你的Windows安装在C盘,那么路径就是c:WindowsSystem32。按照之前我的OpenCV的存放环境;
最后成功!
其实最简单的是使用低版本的opencv库,因为从opencv3.0后,一些不成熟的库就放在opencv_contrib-3.2.0这个包里面;
最后一句:环境搭建真是浪费时间,大家搭配环境时一定要看仔细,一步错了就要重新搭建或者找错
还有许多错误我没遇到,但是一位大神写的很清楚,我的就是参考其搭建成功,网址