注:下文大部分都是转载https://blog.csdn.net/yeyangDIP/article/details/51967316同学的,在需要注意的地方我给重点强调了一下。
废话不多说,直接进入主题。首先,为什么要配置opencv2.4.**?opencv3.0之后的版本很坑,里面少了很多影像处理用到的算法,例如说SURF和SIFT,因为官方说它们不太稳定,所以就放在open contrib+里面,所以如果你还是要用3.0+的版本就必须在添加扩展,我觉得比较麻烦,还不如直接用2.4.9来的痛快。
首先,下载opencv2.4.9版本,打开其中的文件夹你可以看到其并不包含VC14(对应vs2015)
最多就支持到VC12,也就是对应VS2013,但是没有关系,你就当成是VS2013用,所以在接下来的配置中,路径涉及到VC的都是VC12,很多博文都说要根据你的编译器的版本写,例如VS2015就是VC14,这是不对的,因为目录下面根本不包含VC14的文件夹,所以这样显然会出错;
第二步:更改你的系统环境变数,添加新的path,这是我的路径,关键是VC12,D:\opencv2.4.9\opencv\build\x86\vc12\bin;D:\opencv2.4.9\opencv\build\x64\vc12\bin;这里更改完环境变量后一定要注销或者重启系统,否则后面配置成功后会提示找不到bin文件夹中的dll文件。
第三部:新建一个工程,属性,。。。。。懒得打,直接看浅墨的博文:http://blog.csdn.net/poem_qianmo/article/details/19809337/
假设你以上都没问题啦,一般来说你在测试的时候会提示错误,常见的错误浅墨的博文都有将,还有一个关键的错误,它会说:缺少msvcp120d.dll和msvcr120d.dll,这两文件自己网上下,很多。这是因为我们把vs2015当成vs2013用,它没有办法自动匹配,其实的系统中是存在这两个dll的,所以解决方法就是直接copy这两个dll到你第一步添加的path下面跟opencv的dll放在一起就好啦,保险起见X86下和X64下都放,最后测试应该就没有问题。
附上测试代码:
#include#include#include
using namespace cv;
int main()
{
// 读入一张图片(游戏原画)
Mat img = imread("C:/Users/wwwgf/Desktop/snapshot/left_0.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画", img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
}