环境:window7,cmake-gui,vs2013
opencv:3.4.4
opencv_contrib:3.4.4(nonfree模块,主要为了用sift)
链接:https://pan.baidu.com/s/1OXg2IRaxTLTVqM2PVR2ZFA
提取码:qu4z
1、cmake
设置路径,点击configure,选择vs2013,设置64位(不选默认win32)
然后在点击configure,开始运行,因为要下载一些东西特别慢还下载失败,自己手动下一下,在cmakeDownLoadLog.txt里面找几个链接,下载之后重命名放到下面的地方就行
再次点击congifure,直到没有红色报错为止
2、nonfree模块
cv 没有成员 initModule_nonfree,没有opencv2/nonfree/nonfree.hpp文件,SIFT::create实例等问题,就是因为现在的opencv没有sift了,需要编译的时候就添加进来,下载对应版本的opencv_contrib,
在cmake中选上OPENCV_ENABLE_NONFREE" 和"OPENCV_EXTRA_MODULES_PATH"
然后点击Configure
Release 3.4.4 · opencv/opencv_contrib · GitHub
同理会有很多下载失败,在CMakeDownloadLog.txt里面找到链接,然后手动下载一下然后替换,直到没有错误为止,点击generate
3、VS2013
错误1:decode.c quirc报错
都是quirc报的错,取消勾选,重新generate
错误2:_MSC_VER不匹配,在目录里面也找不到这些lib,但发现都是vtk的东西,就把VTK的勾选取消了
4、sift使用
#include <opencv2/nonfree/nonfree.hpp>
头文件替换为:
#include <opencv2/xfeatures2d/nonfree.hpp>
Ptr<SIFT> detector = SIFT::create("SIFT");
替换为:
Ptr<xfeatures2d::SIFT> detector=xfeatures2d::SIFT::create();;