vs c++配置opencv(1)
1.vc++配置opencv
环境:
vs2013
准备工作:
1.安装opencv。
opencv各版本间存在API差异,opencv提供相应版本的vc文件,在其安装目录 ..opencv\build\x86 目录下,个人觉得引用与当前使用vs版本最接近的目录文件就可以。opencv安装目录下的引用lib及bin文件 提供x86和x64
2.配置环境变量。
首先在 我的电脑 右键 属性,在系统属性中 选择高级,打开设置环境变量的界面。其中 上半部分为用户变量,下半部分为系统变量。
(1)在用户变量中添加PATH变量,值为:安装目录\opencv\build\x86\vc12\bin;安装目录\opencv\build\x64\vc12\bin
(2)在用户变量中添加OPENCV,值为:安装目录\opencv\build
过程中变量如果存在,将值添加至末尾,以;间隔
配置好了环境变量,接下来配置的是vc++的工程项目了,用来在vc++中使用opencv。
打开vs,新建项目,选择vc++,32位控制台应用程序,工程命名为opencvTest。
在项目工程上右键,属性,打开属性页面。
属性中选择配置信息,配置中配置选项选择为Debug。点击左侧导航中的 vc++目录。编辑其中的包含目录和库目录。
注:此处为单独的项目配置信息,如果想将此配置导出属性文件供各个项目使用,选择vs中的视图-》其他窗口-》属性管理器
在属性管理器项目上右键 =》添加新项目属性表,为属性表命名并存放于公共目录下,以方便后面的项目引用,在属性管理器中双击新建的属性其具体配置和下面的一样。配置好属性表之后,下次使用就可以在属性管理器中 右键=》添加现有属性表,找到属性文件,添加即可使用。此处以单独项目的配置信息为例:
其中,包含目录中引入的路径是 opencv安装路径\opencv\build\include 及其子项。库目录是其lib文件的所在目录,这里把x86和x64的都引入进来了。如出现“error C1083: 无法打开包括文件:“opencv2/core/core_c.h”: No such file or directory”类错误 说明包含目录中的引用出现问题,可能是路径错了,调整引用路径就ok。
这个地方要注意的是,根据当前项目的实际情况选择相应版本的lib目录,本次设置将两个版本的lib文件全部引用了,但实际项目中系统如果发现有两个一样的引用,会默认使用第一个版本,所以如果为32位的应用程序,则x86的放在首位,如果为64位应用程序x64放在首位。如出现错误“ 无法解析的外部符号_XXXXX,该符号在函数_main 中被引用”则是此处位置的问题,调整位置后就ok了。
之后设置连接器的输入项,设置其附加依赖项,此处为opencv的引用lib文件名称。opencv3.4.13附加依赖项
点击应用并确定。至此,opencv在vs中的配置完成,下面我们开始测试在vc++中调用opencv函数完成图片操作。
(1)在项目源文件目录下,点击opencvTest.cpp,修改其代码为:
// opencvTest.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "cv.h" #include "highgui.h" using namespace std; int main() { IplImage* test; test = cvLoadImage("图片路径", 1); cvNamedWindow("opencv_demo", 1); cvShowImage("opencv_demo", test); cvWaitKey(0); cvDestroyWindow("opencv_demo"); }
此处需要注意的是:
#include "stdafx.h" 需放在文件的第一行,否则会得到跳过引用的警告错误,和找不到相关引用方法的错误。
运行项目,执行结果为打开了在项目中引用路径的图片文件。
运行期间 遇到“无法启动此程序,因为计算机中丢失xxx.dll”文件问题,解决方法:项目=》c\c++=》预处理器 ,在预处理器定义中添加_CRT_SECURE_NO_WARNINGS,然后重新启动vs,完成修改。