前言

本篇主要记录自己配置OpenCV4的步骤和心得。IDE为Visual Studio2017,OpenCV版本号为4.5.5

目前opencv4系列主要支持vs2015和vs2017两个版本,这里推荐还是将vs版本更新到上述两个版本之一,以免出现配置上的兼容问题。

配置主要分为6个步骤:1)下载和安装OpenCV SDK 2)配置包含路径 3)配置库目录 4)配置链接器 5)配置环境变量 6)dll文件复制到system32中

下面开始具体介绍

一、下载和安装OpenCV SDK

在opencv官网下载相关安装包即可

附官网下载链接:Releases - OpenCV

点击realease

选择对应的操作系统,这里我选择的Windows,版本为4.5.5

下载完成后,运行点击解压

这里我新建了一个opencv4的文件夹,为了和之前安装的其他版本的opencv重叠。

解压完成后,如果出现以上内容,就说明解压成功了,其中build文件夹是主要的OpenCV相关文件,里面含有头文件与库文件等重要信息,接下来的环境配置工作都要围绕其展开。

二、配置包含路径

这一步主要完成的工作是告诉计算机安装的OpenCV在哪里,以及告诉IDE应该去哪里找到头文件与库文件。

我们先在vs2017中创建一个新的空项目

新建一个源文件

起名为main.cpp

然后我们将Debug模式改为对应的x64模式

然后点击视图中的其他窗口,打开属性管理器

双击红色箭头所指选项:

在这里插入图片描述

打开后,点击包含目录的红色箭头所指的编辑位置

在这里插入图片描述

点击+号

将刚才解压的opencv文件中build的两个相关的子文件夹添加到包含目录中,分别是bulid\include和build\include\opencv2

三、配置库目录&配置链接器

库目录的配置和包含目录的操作步骤类似,不过这里要说明的是,如果vs版本为2017,则选择vc15,如果vs版本为2015,则选择vc14

路径如图所示

下面配置链接器:

点击链接器中的输入选项,在附加依赖项中新添信息

新添的信息为opencv_world455d.lib,world后面的数字与具体的版本号有关,大家需要去刚才库目录的lib文件夹下查看自己的world号进行设置

在lib文件夹下,有两个lib文件,一个以d结尾,一个没有,含有“d”的lib文件是在Debug模式下使用,就是我们现在创建的模式,而不含“d”的文件在Release模式下使用,配置该模式时再使用,这里我们选择带“d”的文件。

在这里插入图片描述

四、配置环境变量

上述步骤主要负责告诉vs2017去哪里寻找我们的opencv,而环境变量则是告诉计算机去哪里寻找opencv

在Windows搜索栏输入环境变量,打开环境变量

点击后,在系统变量中找到Path,然后点击编辑

新建一个路径,具体的值如图所示,配置完成后点击确定

五、dll文件复制到system32中

在上述工作完成后,我们只差最后一步了,我们把bin目录下的所有.dll文件复制一下,放到C:\Windows\System32中

在这里插入图片描述

将这个5个dll文件复制后,放到C:\Windows\System32中(.dll文件数量随版本不同而不同,老版本一般为3个dll左右)

在这里插入图片描述

以上所有步骤完成后,就大功告成啦!

六、验证配置结果

配置完成后,我们调用opencv的一个显示图像功能来验证一下opencv是否已经成功配置,要显示的图像是非常经典的lena美女:

我们在刚才的项目中,粘贴以下代码,注意图片的位置要根据实际的图片位置来填写

#include<opencv2\opencv.hpp>  //加载OpenCV4的头文件
#include<iostream>

using namespace std;
using namespace cv; //OpenCV命名空间

int main()
{
	Mat img;  //声明一个保存图像的类
	img = imread("D:/vs c++小练习/opencv4_test/opencv4_test/lena.jpg");  //读取图像,图像的位置要按实际位置填写
	if (img.empty())  //判断图像文件是否存在
	{
		cout << "请确认图像文件名是否正确" << endl;
		return -1;
	}
	imshow("test", img); //显示图像
	waitKey(0);  //等待键盘输入
	return 0;  //程序结束
}

程序的正确运行结果如下:

可以看到,我们的程序成功打开了美女lena的图片,当然这张经典的图片也是部分截取而来,完整的全图发个链接:http://www.lenna.org/full/l_hires.jpg ,只能说,懂得都懂233

七、结语

截止到这里,在计算机视觉这条万里长征的道路上,我们可以说已经迈出了伟大的第一步,后面许许多多的图像处理函数,图像算法,还有更加高级的机器学习,卷积神经网络,无不从这里最基础的图像处理工具开始。世上无难事,只怕有心人!继续加油。

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐