前言:

        本文阐述了如何下载OpenCV视觉库,VS如何配置OpenCV的多种方式,及如何以预编译指令链入依赖项,同学们可以据情况选择。文中以VS2019示例,其余版本也大致相同。 

目录

前言:

1 安装OpenCV

1.1 手动

1.2 自动管理

2. OpenCV文件

3. 配置系统环境变量

4. VS配置OpenCV

4.1 配置头文件路径

4.2 配置依赖库路径

4.3 配置依赖项

4.3.1 导入静态库文件

4.3.2 创建配置头文件


1 安装OpenCV

1.1 手动

         OpenCV官网直接下载对应版本,嫌慢也可以找找国内的服务器资源。

1.2 自动管理

        如果有软件包管理工具,如Linux的apt-get,Mac的Homebrew,一条指令即可完成安装。以Mac系统的Homebrew举例,终端输入 brew install opencv  即可。

        可惜Windows系统没有统一的软件管理工具,不过我倒是使用了一款chocolatey工具,

        用来下载sdk,gcc,git,opengl,及动态库文件等都很方便。

2. OpenCV文件

        下载好后,在 “下载路径\opencv\build” 下存在如下内容:

        

        include文件:包含opencv库的头文件

        x64文件:v14对应VS2015,v15对应VS2017,VS2019使用v15即可

                · bin文件:动态库文件(.dll)

                · lib文件:静态库文件(.lib),其中opencv_world460.lib与opencv_world460d.lib这两个版本的文件,分别对应在VS项目配置下Release模式与Debug模式,只有一个版本的文件均要导入。

3. 配置系统环境变量

        为保证程序运行可以找到dll文件,将 ...\bin 路径加入到环境变量Path中。

4. VS配置OpenCV

        打开Visual Stdio工程

4.1 配置头文件路径

        右键项目>>属性>>C/C++>>附加包含目录>>编辑

4.2 配置依赖库路径

        右键项目>>属性>>链接器>>常规>>附加库目录下拉>>编辑

4.3 配置依赖项

        介绍两种链接静态库的方式。 

4.3.1 导入静态库文件

        右键项目>>链接器>>输入>>附加依赖项下拉>>编辑

        · opencv—.lib            Release模式

        · opencv—d.lib          Debug模式

4.3.2 创建配置头文件

        如果你的lib文件夹下存在多个静态库文件,则需要全部导入。

        在实际工程中,则是以创建配置头文件来导入这些依赖库文件。当然,上面的方法也可行,但切换Release/Debug时需大量改动,且配置麻烦。而配置头文件,修改预编译代码即可,内容如下:

        右键头文件目录(自选)>>添加>>新建项>>头文件(.h)

// CVConfig.h

#pragma once

#ifndef OPENCV_CONFIG_H_
#define OPENCV_CONFIG_H_
#define USING_OPENCV430

#ifdef USING_OPENCV430
#include "opencv2/opencv.hpp"
#include "opencv2/core/core_c.h"
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/highgui/highgui_c.h"

#pragma comment(lib, "ade.lib")
#pragma comment(lib, "ippicvmt.lib")

#ifdef _DEBUG
#pragma comment(lib, "IlmImfd.lib")
#pragma comment(lib, "ippiwd.lib")
#pragma comment(lib, "ittnotifyd.lib")
#pragma comment(lib, "libjasperd.lib")
#pragma comment(lib, "libjpeg-turbod.lib")
#pragma comment(lib, "libpngd.lib")
#pragma comment(lib, "libprotobufd.lib")
#pragma comment(lib, "libtiffd.lib")
#pragma comment(lib, "libwebpd.lib")
#pragma comment(lib, "opencv_img_hash430d.lib")
#pragma comment(lib, "opencv_world430d.lib")
#pragma comment(lib, "quircd.lib")
#pragma comment(lib, "zlibd.lib")
#else
#pragma comment(lib, "IlmImf.lib")
#pragma comment(lib, "ippiw.lib")
#pragma comment(lib, "ittnotify.lib")
#pragma comment(lib, "libjasper.lib")
#pragma comment(lib, "libjpeg-turbo.lib")
#pragma comment(lib, "libpng.lib")
#pragma comment(lib, "libprotobuf.lib")
#pragma comment(lib, "libtiff.lib")
#pragma comment(lib, "libwebp.lib")
#pragma comment(lib, "opencv_img_hash430.lib")
#pragma comment(lib, "opencv_world430.lib")
#pragma comment(lib, "quirc.lib")
#pragma comment(lib, "zlib.lib")

#endif
#endif

#endif

        · _DEBUG                                    项目在Debug配置模式下,系统定义的宏

        · #pragma once                            保证文件只编译一次

        · #pragma comment(lib, " ")          链入依赖库

更多#pragma指令:#pragma comment的使用方法 pragma预处理指令详解-CSDN博客

        最后在使用代码加上 #include "CVConfig.h" 即可

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐