新建空项目,建立main.cpp
视图->其他窗口->属性管理器->Debug|x64->Microsoft.Cpp.x64.user
Microsoft.Cpp.x64.user属性页面:
1、VC++目录>包含目录:add
D:\gf_app\opencv3.4.4\opencv\build\include\opencv2
D:\gf_app\opencv3.4.4\opencv\build\include\opencv
D:\gf_app\opencv3.4.4\opencv\build\include
2、VC++目录>库目录:add
D:\gf_app\opencv3.4.4\opencv\build\x64\vc15\lib
3、链接器>输入>附加依赖项:add
opencv_world344d.lib
设置用户环境变量Path:add
D:\gf_app\opencv3.4.4\opencv\build\x64\vc15\bin
重启VS2017,将上方的解决方案平台改成x64,然后就可以在main.cpp中使用opencv,样例程序为读入并显示一张图片
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main() {
Mat src = imread("D:/test_img/test0000.jpg");
if (src.empty()) {
printf("could not found image!");
return -1;
}
cvNamedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
waitKey(0);
return 0;
}
因为要做特征匹配,所以需要xfeatures2d模块,这是在opencv_contrib扩展模块里的。需要到github下载相对应版本的源码。然后使用cmake编译 ,这里我使用的是cmake3.8。
第一步,下载好x64版本的cmake。打开bin目录下的cmake-gui.exe,资源选择opencv的source文件,(newbuild)生成地址自定义,点击Configure、Generate。
第二步,在OPENCV_EXTRA_MODULES_PATH处选择opencv_contrib里面modules文件地址,PS:上方的OPENCV_ENABLE_NONFREE一定要勾选,要不后期项目编译会抛出cv::Exception异常,同样点击Configure、Generate。耐心等待,因为要在github上下载,所以很可能下载中断,如果是download error则再次执行,或者等到晚上网速稍好时继续。
第三步,这时我们已经可以找到输出文件(newbuild),选择其中的OPENCV.sln打开,找到右边资源管理器中ALLBUILD下面的INSTALL,右键点击选择生成。之后大概需要等待30分钟,生成成功后就能在newbuild文件下找到install文件夹,这才是我们需要的。
第四步,回归opencv配置问题,用newbuild中的地址替换掉原来的包含目录和库目录,链接器中的附加依赖项需要把newbuild里面lib下所有含344d的库加进去。提取文件夹中所有文件名的一种方法:文件夹下新建name.txt,输入dir *.* /b> name.txt ,然后将后缀改为bat,点击后会生成包含所有库名的name.txt文件。
第四步,用新的bin地址替代环境变量path中opencv原来的bin位置。重启VS。
第五步,测试,可使用SIFT/SUFT判断是否成功配置扩展模块。
PS:目录地址根据安装地址调整,配置流程参考视频https://study.163.com/course/courseLearn.htm?courseId=1005823002#/learn/live?lessonId=1053147051&courseId=1005823002