1、介绍
win10平台vs2019已经配置好的opencv3.4.5-contrib环境,已经将opencv环境打包到了工程中,并且采用相对路径的方式配置了环境。无论电脑是否安装opencv,打开工程就可以直接使用。
2、资源下载
嫌麻烦不想自己配置环境的同学,可以直接下载我配置好的opencv vs工程,开箱即用。这里提供7z(30M)和zip(90M)版本,两个版本解压后均为315M,无任何差别。
7z版本:https://download.csdn.net/download/qq_39638989/19838953
zip版本:https://download.csdn.net/download/qq_39638989/19838924
下载了资源的同学,应该已经可以直接使用了,可以不用看后续的内容了。如果想学习怎么配置这个环境,可以继续看下去,然后自己尝试配置这个环境。
3、一劳永逸版本vs2019-opencv环境配置
先介绍一下win平台下c++库的组成和使用方法。一般情况下,win中的库有静态链接库(lib),动态链接库(dll),头文件(.h)。我们在程序中通过头文件去调用lib和dll。三种库在vs中的配置方法如下:
lib静态链接库:在库目录中添加包含.lib文件的文件夹路径,然后附加依赖项中将所有用到的.lib文件都添加进去。
dll动态链接库:一般情况下网上介绍的是将包含dll文件的路径添加到系统path环境变量中,但是这种方法会污染系统环境变量且不方便程序移植。或者将dll文件拷贝到运行程序目录下。两种方法我都不推荐。这里介绍一种方便好用的方法,即:在调试-环境中添加 Path={环境路径} 的方法,这样程序会在添加的路径中查找dll,且该方法方便程序移植。
h头文件:在包含目录中加入头文件所在文件夹的路径即可。
(1) 首先,我们需要一个编译好的opencv。
可以采用opencv官网下载的任何版本,也可以自己编译,网上教程很多,这里我就不赘述了。我提供一个编译好的opencv3.4.5-contrib环境,已经分别整理为lib、dll、include三个文件夹,方便大家配置。
链接如下:https://download.csdn.net/download/qq_39638989/19839830
(2) 工程文件结构
首先看工程文件夹结构,
bin用于存放dll,存放自己的dll,这里为空
include用于存放头文件h,存放自己的include,这里为空
lib用于存放lib,存放自己的lib,这里为空
main用于存放主函数main所在的文件,这里包含了一个用显示图像的例子
simple用于存放一些资源文件,这里包好的dog.jpg图片
src用于存放cpp文件,存放自己的写的cpp,这里为空
Thirdparty用于存放第三方库,这里存了opencv库,opencv包含dll,lib,include。
(3) 配置基于相对路径的vs2019 opencv环境
新建一个vs空白工程,并按照(2)中的文件结构建立文件夹和拷贝opencv进去。
配置dll的路径,$(ProjectDir)表示相对路径,即sln文件所在路径。这里处理opencv还配置了bin文件夹,这个属于可选项,如果不在bin文件夹中放dll,可以不用配置。
Path=$(ProjectDir)Thirdparty\opencv\dll;$(ProjectDir)bin;
配置include文件路径,在包含目录中添加路径。同样,$(ProjectDir)include为可选项。
$(ProjectDir)Thirdparty\opencv\include
$(ProjectDir)Thirdparty\opencv\include\opencv2
$(ProjectDir)include
配置lib文件路径,其中*表示通配符,相当于选择满足条件的所有文件。$(ProjectDir)lib\*.lib为可选项。
$(ProjectDir)Thirdparty\opencv\lib\*.lib
$(ProjectDir)lib\*.lib
环境配置完成,最后在主文件中写入例程代码进行测试。
#include <iostream>
#include <opencv2/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("./simple/dog.jpg", IMREAD_COLOR);
imshow("img", img);
waitKey(0);
return 0;
}
结果如下,程序运行正常。
该工程可以整个一起拷贝到任何win10电脑上,应该都能正常运行。