文章目录
- 前言
- 一、下载和安装OpenCV SDK
- 二、配置包含路径
- 三、配置库目录&配置链接器
- 四、配置环境变量
- 五、dll文件复制到system32中
- 六、验证配置结果
- 七、结语
前言
本篇主要记录自己配置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的图片,当然这张经典的图片也是部分截取而来,只能说,懂得都懂233
七、结语
截止到这里,在计算机视觉这条万里长征的道路上,我们可以说已经迈出了伟大的第一步,后面许许多多的图像处理函数,图像算法,还有更加高级的机器学习,卷积神经网络,无不从这里最基础的图像处理工具开始。世上无难事,只怕有心人!继续加油。