刚刚开始学OpenCV,在windows 64位操作系统下使用Visual studio2015进行配置时,总是出现缺少dll文件的错误,在网上进行搜索也没有很好的解决办法,不过最终还是解决了。因此在这里整理一下,方便以后碰到类似问题的朋友~
特别鸣谢毛星云大神,@浅墨_毛星云 参考文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337
截止目前(2016年10月20日),opencv2最新的版本是2.4.13,无奈在下载2.4.13时总是只下载101Kb就下载结束了,文件下载不完整,因此选择了2.4.12版本。
1.下载安装opencv
下载链接:http://opencv.org/downloads.html 在这里选择最新版本进行下载~
好下载完成后双击运行,其实就是解压到我们输的目录下,比如:
(这里其实解压完成本来就是一个名为opencv的文件夹,所以我在这里其实是多加了一层opencv的路径)
解压完成后就可以在相应路径下看到opencv的全部文件了:
2.配置环境变量
在开始图标上右键--选择【系统】:
在弹出的窗口左侧选择【高级系统设置】
在弹出的窗口中点击【环境变量】
弹出环境变量窗口:
这里配置名为【Path】的环境变量,毛星云大神的博客中是在下面的系统变量中编辑的,经我实测,在上面的用户变量中进行配置也是可以的,不过这样尽在使用当前用户登录计算机时可以使用。
好的,我们选择Path,双击或者点击编辑。
win10下配置环境变量非常方便,不需要像以前那样输入一长串的路径,而是将每一个路径单独列出来,看起来非常直观:
点击右侧的新建,光标就会自动跳到最后新建一行,此时可以直接直接复制路径 或这 点击浏览手动选择路径。
总之将 ...\opencv\build\x64\vc12\bin 和 ...\opencv\build\x86\vc12\bin 加入到path环境变量中,注意,这里x86和x64文件夹下有vc11和vc12两个文件夹,只要选择vc12就可以了。
vc11对应visual studio 2012,vc12对应visual studio 2013,在2.4.12和2.4.13中没有对应visual studio 2015的编译器版本,因此我们选择最新的vc12
至此,环境变量就配置好了。记住,配置好之后别忘了依次点击每个窗口的确定,否则配置是不会保存的。
3.include,lib,链接库的配置
这三步的配置与之前版本并无不同,直接移步 毛星云大神博客 的第3/4/5步即可,
其中第5步添加的lib为
opencv_ml2412d.lib
opencv_calib3d2412d.lib
opencv_contrib2412d.lib
opencv_core2412d.lib
opencv_features2d2412d.lib
opencv_flann2412d.lib
opencv_gpu2412d.lib
opencv_highgui2412d.lib
opencv_imgproc2412d.lib
opencv_legacy2412d.lib
opencv_objdetect2412d.lib
opencv_ts2412d.lib
opencv_video2412d.lib
opencv_nonfree2412d.lib
opencv_ocl2412d.lib
opencv_photo2412d.lib
opencv_stitching2412d.lib
opencv_superres2412d.lib
opencv_videostab2412d.lib
opencv_objdetect2412.lib
opencv_ts2412.lib
opencv_video2412.lib
opencv_nonfree2412.lib
opencv_ocl2412.lib
opencv_photo2412.lib
opencv_stitching2412.lib
opencv_superres2412.lib
opencv_videostab2412.lib
opencv_calib3d2412.lib
opencv_contrib2412.lib
opencv_core2412.lib
opencv_features2d2412.lib
opencv_flann2412.lib
opencv_gpu2412.lib
opencv_highgui2412.lib
opencv_imgproc2412.lib
opencv_legacy2412.lib
opencv_ml2412.lib</span>
配置完成之后保存重启电脑。
4.测试后出现dll文件缺失
在上面的步骤进行完成后新建一个空白项目,
在【源文件】上右键--【添加】--【新建项】,新建一个c++文件
在【资源文件】上右键--【添加】--【现有项】,选择自己要展示的图片
在C++文件中粘贴代码:
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
//读入一张图片
Mat img = imread("lena.jpg");
//创建一个名为 lena 的窗口
namedWindow("lena");
//在窗口中显示lena
imshow("lena", img);
//等待6000ms后窗口自动关闭
waitKey(6000);
}
好,编译运行,这时报错了:
报错一般会提示丢失MSVCP120D.dll和MSVCR120D.dll,这是因为我们之前用的是vc12,对应visual studio 2013,而我们采用的是visual studio 2015,这两个文件其实是visual studio 2013中的,因此我们需要将这两个文件放到 C:\Windows\SysWOW64 中,并重启电脑
在网上搜索这两个文件有很多种版本,大多数都不能解决我们的问题,这里给出我测试成功的版本,免费分享给大家http://download.csdn.net/detail/budf01/9660206
重启后再次运行,成功!