如何在Visual Studio上配置OpenCV 4.5.2用于C++项目开发

这是我第一次在号称宇宙最强的IDE Visual Studio上调用非标准库编译C++程序,中间遇到了很多的报错,让我怀疑人生。

首先,我们需要从Sourceforge下载OpenCV, 目前最新版是4.5.2

image.png

下载的exe文件双击之后会出现解压界面

解压中

解压缩后得到如下文件

解压内容

我们需要依次系统属性->高级->环境变量,找到并设置设置环境变量Path

环境变量

如果不在环境变量中设置opencv中的bin路径,会出现如下报错 【由于找不到opencv_world452d.dll, 无法继续执行代码】

error1

在Visual Studio 2019中使用OpenCV构建项目的流程如下

第一步:新建一个C++的控制台项目。

新建项目

第二步:配置项目的项目名称,例如opencv-test

image.png

创建项目之后,先将Debug 改为x64,因为后续构建的是x64的项目。

修改Debug

第三步:为了能让代码正常运行,我们需要配置这个OpenCV项目的所需的include和library路径,以及依赖的lib文件。

在菜单栏的项目(P)中选择属性(P)

项目属性

选择VC++目录(VC++ Directories)的包含目录(Include Directories),点击编辑

image.png

添加opencv的include的路径(头文件)

include

同样的操作,也用于库目录(Library Directories)的设置

library

添加library路径(路径比较深)

library路径

检查下,刚刚修改的include和library

检查状态

此外还需要增加一个包括所有模块的lib文件。选择链接器(linker)中的输入(input), 接着编辑附加依赖项

![linker(https://halo-1252249331.cos.ap-shanghai.myqcloud.com/upload/2021/05/image-75a058ac43214ee9bfb9fb18f884df75.png)

添加opencv_world452d.lib,该文件包括opencv里的所有模块(lib文件和opencv版本有关,可从lib目录中确认)。

符加依赖库

如果不设置该变量,会出现【无法解析外部符号】的报错

error2

如果写错成 opencv_world452d.dll,就会出现【 LNK1104 无法打开文件”opencv_world452d.dll”】报错(之所以写成dll,是因为之前出现的dll找不到报错,导致我以为增加的是这个文件)。

如下是测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
Mat image = Mat::zeros(600, 600, CV_8UC3);
putText(image, "xuzhougeng", Point(100,300), FONT_HERSHEY_COMPLEX, 2.0, Scalar(100,200,200 ), 5 );
imshow("Display Window", image);
waitKey(0);
return 0;
}

能正常出图表示能正确在项目中调用OpenCV。

参考资料: