VS2019配置opencv的两种方法
前言
opencv是一个开源的跨平台计算机视觉库,是我们进行机器视觉学习的有力工具。opencv整体由C++语言编写,它轻量且高效,并且提供了C++,python,java等多种语言的接口。本文将详细讲解使用VS2019调用opencv的两种方法:一是在IDE中完成一系列配置,二是直接使用命令行编译。
一、在IDE中配置opencv
首先我们可以直接进入opencv官网下载opencv,本文不再赘述。opencv有多个版本可供下载,本文选择的是opencv4.4,读者也可下载更新的版本或者以前的版本,但不要太低。下载后置于D盘,实际上可以置于电脑上任意位置,唯一需要注意的是最好文件路径不要有中文字符。
接下来需要添加环境变量,右击我的电脑—属性–高级系统设置–环境变量–系统变量–Path,将自己的bin目录添加进去,如下图所示:
打开VS2019,创建C++空项目,首先将VS改成64位release模式(这个很重要),然后右击项目,选择属性,进入如下所示界面:
接下来需要做的就是将opencv的包含目录和库目录添加到项目中,首先选择VC++目录中的包含目录:
在包含目录中添加路径:D:\OpenCV-4.4\OpenCV-4.4.0\build\include
D:\OpenCV-4.4\OpenCV-4.4.0\build\include\opencv2
如下图所示,至此,我们可以使用opencv库中的一切头文件。
接下来将需要将opencv库中的lib文件添加到库目录,我的lib路径是D:\OpenCV-4.4\OpenCV-4.4.0\build\x64\vc16\lib,读者需要根据自己的路径进行修改。
接下来找到链接器–输入–附加依赖项:
在附加依赖项中添加opencv_world440.lib,这里需要特别注意,440表示opencv版本为4.4.0,如果你的版本是4.2.0,那么你的依赖项应该是opencv_world420.lib。
为了让程序顺利跑起来我们还需要进行最后一步,在D:\OpenCV-4.4\OpenCV-4.4.0\build\x64\vc16\bin中找到opencv_world440.dll文件,将它复制到C:\Windows\System32目录下。
至此,IDE中的配置完成,整个过程还是比较费劲的,接下来第二节我们将介绍一种更为简单的配置方式。为了验证是否配置成功,我们可以在IDE中运行以下代码,如果代码能够成功运行则表示配置成功。
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(){
Mat m=imread("revenge.jpg");
imshow("m",m);
waitKey();
}
这里唯一需要注意的是读者使用这段代码进行测试的时候需要改图片路径:imread(“你的图片路径”)。运行结果如下所示:
二、命令行编译配置opencv
使用命令行进行配置是更为简单的选择,同样地我们需要进入opencv官网下载opencv对应版本,在这里我们同样使用的是VS2019和opencv4.4进行配置。打开vs命令行窗口,一定要选择x64的窗口。
我们同样使用上一节中的代码,创建一个opencv.cpp,放于指定文件夹下,同时新建一个txt文档,用于指定调用opencv需要用到的库和包含目录,如下所示:
接下来我们需要将vs命令行的工作目录更改到cpp所在的目录,使用cd命令即可,如下所示:
接下来我们需要对cl.txt进行处理,如下所示,/I"包含目录"表示我们需要的两个包含目录,要注意前面的/I和双引号,这是语法规则。文件中第三行为我们需要引用的库目录,读者需要根据自己的opencv版本进行更改。最后的/EHsc也不可省略。
为了让程序顺利跑起来我们同样还需要进行最后一步,在D:\OpenCV-4.4\OpenCV-4.4.0\build\x64\vc16\bin中找到opencv_world440.dll文件,将它复制到C:\Windows\System32目录下。
完成上述所有工作后,我们可以直接在命令行中对我们的cpp文件进行编译,代码与第一节同,如下所示:
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(){
Mat m=imread("revenge.jpg");
imshow("m",m);
waitKey();
}
同样的,读者需要根据自己的图片所在更改imread()函数的参数,命令行编译的命令为:cl opencv.cpp @cl.txt,编译运行后,我们可以得到同样的结果。
总结
本文介绍了使用VS2019配置opencv4.4的两种可行方法,与IDE配置相比,命令行配置明显要简单得多,省去了很多中间步骤,如果对opencv比较熟悉的话,建议直接使用命令行进行配置编译。IDE配置的优点则是,对于新入门的读者而言,在调用opencv中提供的API时,IDE会提供参数提示等功能,这对于新手而言是非常友好的,尤其是opencv中提供的API通常都包含多个参数。总之,本文提供两种配置思路,读者可根据自己的喜好进行选择。
上一篇: 哥哥和儿子是皇帝,自己却过得窝囊无比
下一篇: 诸葛亮有女儿吗?历史上有诸葛果这个人?