首先,结尾有彩蛋。
我笔记本安装的是win7+ubuntu14.04双系统,最近想使用windows上的vs+opencv测试一些程序,因为看论文的需要还是使用win比较方便,最近尝试人体检测,使用Yolo的方法,要求opencv版本在3.4以上,所以只好重新配置opencv。
在这里我主要参照的是这篇博客
关于vs2013+opencv3.4.0只要百度会出现很多教程,在这里我主要记录一下我配置过程中遇到的问题,以便今后查阅。
一 Cmake工具编译OpenCV源码
首先在opencv官网要使用选择opencv源码版(Sources)下载,解压
然后下载cmake 链接:https://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip
然后将解压后的文件放在自己建立的opencv文件夹内,并在文件夹内建立cmake要用到的build文件夹,在这里命名为opencv-3.4.0_vs2013_x64, 如下图所示:
然后打开cmake,在/bin下双击cmake-gui.exe对opencv源码进行编译,source code的路径选择选择opencv源码所在的路径,在这里我的路径是:E:\opencv-3.4.0\opencv-3.4.0,where to buid的路径选择刚才新建的build文件夹,在这里我的路径是:E:\opencv-3.4.0\opencv-3.4.0_vs2013_x64。
点击Configure按钮开始编译,之后会如下图所得示,显示一些编译选项,网上大部分教程都建议取消勾选with_cuda选项,对此我想到以前在Nvida jetson TX1上安装opencv同样遇到了opencv与TX1系统自带的cuda冲突的问题,一定要在cmake选项中关闭编译cuda,所以在这里我们同样关闭with_cuda。
再次点击Configure后下方显示configure done,然后点击Generate,下方显示Gernerate done,然后点击Open Project会启动vs2013。到这里opencv的编译工作接完成了。
二 配置VS2013
在点击Open Project按钮后 ,打开的vs界面如下图所示,在这里我忘记截图了,所以借用该博客的图和步骤来说明一下,具体步骤这篇大神的文章已经给说的很详细了,这篇文章配置的是opencv3.3.0,配置3.4.0时,步骤也基本相同。
这里需要记录的就是按上述步骤完成配置后,测试打开图片的程序,会出现类似如下图所示的错误:
在这里我们会需要将E:\opencv-3.4.0\opencv-3.4.0_vs2013_x64\bin\Debug路径下所有*d.dll文件都复制到C:\Windows\System32路径下,亲测可以解决该问题。
接下来我在测试打开图片的程序中会遇到如下报错:OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow
在网上查找之后找到解决办法那就是需要在要打开的图片前加上绝对路径,即使图片就在工程文件夹下也不行,在这里附上测试程序源码:
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("E:\\vsprogram\\Opencv3.4.0_TestDemo\\img.jpg",1);
imshow("img", image);
waitKey(0);
return 0;
}
试程序运行成功如下图所示: