「图像处理」OpenCV的安装与配置

OpenCV是一个跨平台计算机视觉库,目前做图像处理很多都有用到。初学OpenCV的时候,觉得这玩意的安装和配置是一件很复杂神奇的事情,后来写代码慢慢多起来,对如何封装动态库、如何调用动态库有了了解,发现OpenCV的所谓安装和配置,就是简单的加载动态库而已。

所以,本文主要就是以配置OpenCV为例写一下如何静态调用dll

1、首先下载Opencv:

下载地址:https://opencv.org/opencv-4-1/

别告诉我你连下载都不会

2、 安装

C盘或者D盘你随意

 

3、打开VS

 选择 文件->新建->项目

4、新建项目

选择最基础的套餐:windows控制台程序

修改好名字之后确定, 进入后你不妨先写一个hello world 的小程序(●´∀`●)

接下来就是配置OpenCV

 5、新建配置文件

这样做的目的是避免每次新建工程后都要配置 opencv,我们做一个配置文件,每个新工程都加载 这个配置文件即可

如果其他dll也会在多工程中调用,也可以用这个方法 

5.1如下图先找到 属性管理器

(在“视图”下拉菜单中没有的话,点其中的“其他视图”)

 

5.2新建属性表

由于我下载的OpenCV是4.1.0版本,只支持64位,所以这里需要注意的事,程序只能写64位的,属性配置也只需要配置64位,如果需要32位的,建议下载较旧的版本,比如3.0及以前的版本。 

如上图,在 属性管理器中,选择“Debug | x64”,右键,选择“添加新项目属性表”

进行命名,例如针对Debug,我的命名如下“OpcvX64Debug.props”

点击“添加”进行添加

同样的方法,在“Release | x64”下添加OpcvX64Release.props属性表

6、配置OpenCV ,呸, 配置dll

首先是debug

6.1双击打开刚才添加的“OpcvX64Debug.props”,在“VC++目录”->包含目录  中编辑添加Opencv库的头文件的目录

即“.h”文件做在目录

“D:\Program Files\opencv410\opencv\build\include”

“D:\Program Files\opencv410\opencv\build\include\opencv2”

 这样做的目的是,在 预编译时,可以直接include头文件,而不需要 一一添加到项目中,再在include出写很长的路径了

 

6.2 接着在 VC++目录->库目录 中添加lib文件所在的路径

对于OpenCV,是如下:“D:\Program Files\opencv410\opencv\build\x64\vc15\lib” 


对于不同的VS版本,对应的VC版本有所不同,其对应关系如下:
 

vc9    -   VS2008
vc10   -   VS2010
vc11   -   VS2012
vc12   -   VS2013
vc13   -   VS2014
vc14   -   VS2015
vc15   -   VS2017

6.3   链接器->输入->附加依赖项

将上一步路径下的lib 文件名复制进去

(这里需要说明,opencv对debug和release做了区分,末尾以“d”结尾的是debug下要添加的,没有“d”的是release下添加的)

结束后,点击应用并确定

右键点击 “OpcvX64Debug.props”,点击保存

 

以上,就基本配置ok了

同样方法,将第5步中添加的“OpcvX64Release.props”也进行配置,其中要注意的是:链接器->输入->附加依赖项 中添加的lib文件名是不带“d”结尾的。

一定注意,配置完成后要右键保存属性表

保存后, 即可在项的目录下找到这两个文件

将这两个文件存好,在新建其他工程项目时,在其属性管理器中,进行添加即配置完成

 7 关于环境变量

参考其他 人的opencv说明,你可能会问,为什么没有添加环境变量这一步呢

 作为学习研究,应该有这一部,但如果你基于opencv写的程序或者dll要发给别人,我不建议添加环境变量

你只需要将用到的opencv的dll加到你程序的目录下即可(生成的exe/dll目录下)

--------------------------------------------------------------------------------------------------------------------

测试:

编写 如下简单代码进行测试

(其中“1.png”是图片全路径,如果图片在工程目录下,则直接使用名称即可)

#include <iostream>
#include <opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
	Mat img = imread("1.png", 1);    //读取图像
	namedWindow("test", WINDOW_AUTOSIZE); 
	imshow("test", img);    //显示图像
	waitKey(0);
	return 0;
}

由于没有配置环境变量,在运行时,会弹出如下错误:

之所以找不到,是应为在环境变量里的所有路径下没有找到,再一个,在程序文件坐在的目录下也没找到,既然不添件环境变量,那么我们将这个dll文件复制到程序所在目录里就可以了

 

如上图,是debug和release下对应的两个dll文件,将对应的复制到编译生成的exe文件内即可

-------------------------------------------------------------------------------------------------------------------------------

工程问路:

解决方案资源管理器->右键项目名->在文件 资源管理器中打开文件夹

打开后如下图:

 编译生成的exe、dll等则在其上一级目录的 x64文件夹下的debug、release文件夹内(32位,直接在上一级目录的debug、release文件夹) 

猜你喜欢

转载自blog.csdn.net/Raink_LH/article/details/89838838