Skip to content

VS2013 下 OpenCV 3.0.0 配置教程

Published: at 09:53 PMSuggest Changes

今天我编译一个项目,需要用到 OpenCV 以编译项目。 这是我部署 VS2013-OpenCV 3.0.0 环境的笔记。

下载和安装 OpenCV

下载并解压 OpenCV

前往官方网站,下载对应版本 OpenCV,这次我下载的是 3.0.0 版本的,因为我用的是 VS2103 官方下载地址:跳转到 opencv.org 打开安装包,设置 opencv sdk 解压目录,点击 Extract 后解压。

设置解压目录 OpenCV 解压过程

设置 opencv 的环境变量

“开始菜单”-> “控制面板”->“系统”或在“计算机”上右键选“属性”打开系统设置窗口 系统设置窗口 选择“高级系统设置”打开“系统属性”窗口 系统属性 选择“高级选项卡“,点击“环境变量”按钮打开“环境变量”窗口 环境变量 在系统变量里找到 Path 变量,在 Path 中添加值 SDK 中的 bin 目录。本人解压时设置的目录是 E:\SDK,用到是 32 位库,VC++ 用的是 2013,因此添加到 bin 目录为 E:\SDK\opencv\build\x86\vc12\bin。注:环境变量配置后,需重启系统才能生效。

VC++ 工程配置

打开 vs2013,选择新建项目。 新建项目 选择 Visual C++ 模板创建空项目。 项目建好后,点击“菜单”->“项目”->“属性”,打开项目属性对话框,选择“C++ 目录”对 SDK 目录进行配置。 对 SDK 目录进行配置 选择“包含目录”,在下拉菜单中选择“编辑”,打开包含目录对话框。添加前面介绍过的 SDK 中的 include 文件夹的路径。 添加 SDK 中的 include 文件夹的路径 选择“库目录”,在下拉菜单中选择“编辑”,打开包含目录对话框。添加前面介绍过的 SDK 中的 lib 文件夹的路径。这里需要注意点,开发 32 位程序选择 x86 目录下的,64 位则选 X64 目录下的,同时还要根据自己所用的 VC++ 版本选择相应的 vcXX 目录。我要开发的是 32 位程序,使用的 2013 因此,选择的是 X86 中 vc12 下的 lib 文件夹。 添加 lib 文件夹的路径 接下来是配置项目所需的静态链接库。选择“链接器”下的“输入”,在“附加依赖项”下拉项中选择“编辑”,打开附加依赖项对话框。 静态链接库 在附加依赖项中添加 opencv_core248d.lib,这是 opencv 最基本的类和函数;添加 opencv_highgui248d.lib,它是 opencv 提供的简单 gui;添加 opencv_imgproc248d.lib,它提供了一些基础的图像处理操作。简单的运用,这三个库基本够了。用到其他 opencv 功能时,只需按照所用函数所在的头文件名,添加相应的 lib 文件就行了。 附加依赖库 注:前面设置的是新建工程的 Debug 版配置,切换到 Release 用同样的方法配置就可以,唯一的区别是 Debug 版用到的 dll 和 lib 文件都有后缀 d,Release 版使用的不带 d。配置 Release 的附加依赖项时别忘了把 d 删掉。

测试 OpenCV 配置是否正确

在解决方案中,在项目上右键,选择添加新建项。 新建 C++ 文件 在对话框中选择添加 C++ 文件。 在新建的 C++ 文件中写上一个最简单的测试代码生成后运行。如果配置无误,生成的程序就能正常运行了。如果提示缺少 dll 文件,是环境变量没配置对,重新配置环境变量或将 SDK 中 bin 目录中的相应 dll 文件靠到工程目录下或系统所在盘 Windows\System32 下就可以解决。如果是提示链接错误,是附加依赖项没设置对,或没有添加够所需的 lib 文件。 这里来段用 OpenCV 打开并显示图片的代码

#include <opencv2\opencv.hpp>
using namespace cv;
int main()
{
	Mat img = imread("E:/lena.png");
	//新建一个矩阵用来存放从文件读取的图片
	namedWindow("image",CV_WINDOW_AUTOSIZE);
	//创建一个窗口,窗口标题设为 image,并设成自动大小
	imshow("image",img);
	//在 image 名字的窗口中显示 img 中的图像
	waitKey();
	//等待键盘输入
	return 0;
	//程序结束
}

按 Ctrl +F5 编译运行

测试成功!

测试成功 例子中所用的测试图片是 OpenCV 自带的 lena.png。看过图像学书的是不是觉着这图很眼熟,似乎所有图像学的书都会用到这图。这图基本上可以算图像学的一个标准用图了,不过这图并不是完整版哦,它只是截取了其中的一部分。

OpenCV SDK 文件夹结构简介

解压后再解压目录下有 OpenCV 目录 OpenCV 目录 在 opencv 文件夹下有 build 和 sources 两个文件夹,build 是 sdk 包,sources 是源码包(里面也有 opencv 使用例子源码) OpenCV 目录

在 build 文件夹下 include 是 C&C++ 头文件所在文件夹;doc 是文档文件夹;java 是 java 开发的库文件夹;python 是 pathon 开发库文件夹;x64 和 X86 是已编译好的 C&C++ 的 64 位和 32 位库文件夹,在它里面有 vc10、vc11、vc12 三个文件夹,分别对应 VC++2010、VC++2012 和 VC++2013。

因不同版本 VC++ 生成的库文件所需的运行时不同,因此配置 VC++ 工程时需要选择相对应的二进制库文件。在 vcXX 文件夹下 bin 文件夹是公用的动态链接库,在系统环境变量里配置后,所以 opencv 工程都能共享他们;lib 文件夹是动态库隐式调用所需的静态链接文件;staticlib 文件夹是静态链接库,需要生成不依赖动态库的程序就是用它们。


Previous Post
CentOS 7 Node.js 和 npm 安装教程
Next Post
人工智能玩转谷歌浏览器小恐龙游戏