这一篇主要用于安装及部署OpenCV环境
由于VS2017和VS2019在部署OpenCV上有部分差异,因此本篇博文主要介绍一下关于VS2019在win10下部署OpenCV430的过程。
环境:win10x64 + vs2019 + opencv4.30
1、下载及解压安装
官方源在国内下载速度太慢了,官网下载地址直接百度即可。
直接用浏览器下载速度会让你怀疑人生,因此博主推荐用国内的镜像源,或者博主这里给出上传到百度网盘的链接,供大家使用。
其中包含了OpenCV331 , OpenCV430的安装包:
链接:https://pan.baidu.com/s/1pBos5WQOE-0_pXyr-zS0KQ
提取码:01gm
链接中包含OpenCV3.31和4.30的,读者可以根据自己的选择下载下载之后,点开即可。3.31和4.30安装略有不同,读者参考本篇的opencv430安装自行尝试一下331安装。或者百度之,本篇不再赘述。
下载之后开始解压,建议读者在根目录下新建文件夹,作为OpenCV的安放位置。
解压后如下,由于以后可能会用到其他版本的opencv,因此这里博主又新建了一个opencv430的文件夹,用于存放430版本的各种文件。
2、配置系统的环境变量
打开控制面板,找到高级系统设置,下图右边所示
进入高级系统设置
进入环境变量,双击变量中的Path,进行编辑
新建一个环境变量,变量值设置为D:\OpenCV\opencv430\opencv\build\x64\vc15\bin
此处根据具体的盘符和解压位置进行配置,找到前面解压的opencv文件,进入build,进入x64,进入vc15,进入bin,把路径复制到环境变量中。此处博主将变量值上移到了图中第三项的位置,便于大家观看。
然后就是一路确定就可以了。(有时候因为不同电脑可能会有特殊原因,环境变量需要在重启电脑后生效)
还是刚才bin文件下,找到如下三个文件,后缀数字根据版本号不同而不同,此处opencv430的是如下所示dll文件。将之复制到
C:\Windows\System32 ,以防因为电脑原因找不到相关的动态链接库而报错。
3、在VS2019上配置OpenCV文件
在vs2019中新建一个空项目
然后再找到 视图,其他窗口,项目管理器(这个打开方法适用于vs2019,vs2017版本不适用,读者可以自行百度之),打开它。
打开后如下图所示,右边栏目会出现属性管理器
右键 Debug|x64 ,新建项目属性表,(由于前面主要是配置64位的项目,因此需要配置的是64位项目的属性表,学习用途一般是用debug即可,发行版用release版,配置方法同debug版)
选择添加新项,(读者可以自己选择保存的位置,以后后续使用时快速导入项目表,博主选择放在工程目录下,以后如果需要再次使用,创建新的项目时,即可快速导入现有的属性表)
找到刚刚新建的属性表,双击打开之,
找到VC++目录,进入包含目录,点击编辑之
找到之前的include目录,将之添加至包含目录中
点击确定
和上面类似的方法,将lib的路径添加至库目录中。博主的lib目录如下所示。
点击确定
千万要注意,这的库目录,一定要对应,vs2017以上的选vc15\lib,vs2015左右的选vc14\lib
然后添加附加依赖项,方法同上,博主的lib位置如下
opencv_world430d.lib 为配置debug 数字后面多一个d
opencv_world430.lib 为release,建议都添加至
找到 链接器->输入->附加依赖项,双击进行编辑,添加上述的两个lib文件的名称(不同的版本数字不同,对应即可,此处是opencv4.30,因此是opencv_world430d.lib 和 opencv_world430.lib)
点击确定
再就是一路确定即可。
2021.7.20 补充:
创建好项目属性表后,需要再设置总项目的属性表
即右键此处的OpenCVProcessCollection (根据自己实际的项目名),然后添加现有属性表(现有属性表也就是在前面步骤生成的)
前面步骤生成的项目属性表一般在当前的工程目录下
添加后才能正常使用
4、导入前面的项目属性表,便于下次配置类似的项目使用
(实际生产可能因为不同的项目需要不同的配置,此处讲解的是学习用途,配置一般不会变,因此采用这种类似于一劳永逸的方法,根据实际情况采用即可)
完成上述工作后,你会得到一个配置好的项目属性表,下次再次创建新的项目时,就将刚刚的属性表导入即可,导入方法:
还是和前面一样,打开项目属性管理器,右键Debug|x64,这次选择添加现有属性表,
在弹出的文件中选择定位到之前的属性表,点击打开即可导入之前的配置。
然后点击右上角,关闭属性管理器
5、测试图片及配置
新建源文件代码,将下述的代码复制过去。记得提前准备好一张图片,注意区分是jpg还是png格式。
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 读入一张图片,博主放了一张lena的图片在桌面上
Mat img = imread("D:\\Desktop\\lena.jpg");
// 创建一个名为 "图片"窗口
namedWindow("photo");
// 在窗口中显示图片
imshow("photo", img);
// 等待直到有按键按下后后窗口自动关闭
waitKey(0);
return 0;
}
以x64,debug下运行(前面没有配置x32的,因此用x86运行会报错,且注意是debug版的运行之),如果能正常显示图片,说明上述配置流程成功。
正常显示如下:
顺带贴出一张图像处理领域经典的lena图片:
6、接下来的系列有关OpenCV的一些基础操作,基础函数,以及图像学的处理。可以继续关注博主后续的博文。
7、参考
https://www.cnblogs.com/coderzjz/p/13043856.html