最近在折腾了一下VS2012的OpenCVS2.4.5配置,同VS2010下基本相同,做个简单的记录,以备日后查阅。

1. 安装OpenCV

从OpenCV官网:http://opencv.org/下载OpenCV安装包,放到想要安装的位置双击,即可安装,我这里是安装在C:\Program Files\opencv的位置

2. 新建工程

在这里就使用简单的控制程序进行测试了,截图如图一所示:

图 1 新建32位控制台项目

3.添加依赖

在新建好项目之后,为了能使用OpenCV的函数库我们首先需要为该项目添加好OpenCV依赖,具体步骤图2。

  1. 项目名称->右键->属性

图 2 添加VC++目录依

2. 添加VC++目录依赖,首先在VC++ Directories(C++目录)中的Executable Directories中添加好C:\Program Files\opencv\build\x86\vc11\bin;在Include Directories中添加C:\Program Files\opencv\build\include;C:\Program Files\opencv\build\include\opencv;C:\Program Files\opencv\build\include\opencv2;在Library Directories中添加lib依赖,为该项增加路径C:\Program Files\opencv\build\x86\vc11\lib

3. 添加连接器依赖,在属性窗口中选择连接器->输入(linker->input),如图3所示。在附加依赖(Additional Dependencies)那项增加该OpenCV中所需要的包,不一定要全部加上,选择部分即可,注意添加的时候包要带后缀名,添加完一个后,回车换行再加下一个,添加完如图4所示。

图 3 添加Linker包依赖

图 4 添加完成后结果

4. 示例代码测试

在第三部,我们已经完成了本项目所需要的OpenCV包的配置了,下面我们可以用一小段OpenCV项目代码来测试配置是否准确,代码如下:

// OpenCVTest.cpp : Defines the entry point for the console application.
// #include "stdafx.h" #include <opencv2/opencv.hpp> using namespace std;
using namespace cv; int _tmain(int argc, _TCHAR* argv[])
{
const char* imagename = "D:\\Image\\yuner.jpg"; //从文件中读入图像
Mat img = imread(imagename); //如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -;
} //显示图像
imshow("YunEr", img); //此函数等待按键,按键盘任意键就返回
waitKey(); return ;
}

运行结果如下,这里就不对该程序进行解释了,这程序的主要功能是显示了一张允儿的照片,运行结果如图5。

图 5 运行结果

5. 定制OpenCV工程模板

从以上的配置步骤我们知道,在VS2012中新建OpenCV工程,需要进行很多步骤的琐碎步骤进行配置,中间容易出错,尤其是对于我们初学者,需要新建很多测试工程,如果每个都去配置那就太麻烦了。就目前看来,解决的办法有两种:一是为以后所有的项目中添加OpenCV那套配置,该方法在网上的博客中也写的最多如:http://www.douban.com/note/271142663/;二是同Word等类似,VS为我们提供了一个项目模板功能,我们可以新建一个OpenCV模板,之后的工程就根据该模板新建即可。下面就是第二种方法的步骤了:

  1. 同原来一样,我们新建一个工程,这里同样选为32位控制台类型,新建完后,按照上面所说的步骤为其添加好OpenCV依赖,添加完依赖如图6所示

图 6 OpenCV模板

2.导出模板

单击文件->导出模板(File->Explorer Templete),然后单击下一步,选择Project Templete,再选择一张图片作为模板标识,单击完成即可,生成的模板以zip文件存放在VS的默认目录下,我的存储在:C:\Users\wangmurong\Documents\Visual Studio 2012\My Exported Templates

图 7 导出模板

  1. 从模板新建

创建好模板以后,我们就可以根据模板来新建了,同样,选择新建32控制台程序,如图8所示,我们可以看到,我们的模板已经被添加到默认新建模板中去了。根据该模板新建的工程就可以直接使用OpenCV了,不用再添加了,当然,如果模板中的lib文件不够的话还是需要再手动添加的。

图 8 根据模板新建

最后再添加几个常用的OpenCV学习网址吧:

  1. http://www.opencv.org.cn/
  2. http://wiki.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5
  3. http://groups.yahoo.com/neo/groups/OpenCV/info

VS2012下配置OpenCV2.4.5的更多相关文章

  1. VS2012下配置MPI

    并行处理结课实验,要用到MPI编程,我的电脑和VS2012都是64位的,以为MPICH也得是64位才行,结果饶了很大的弯——配置正确,添加引用之后,仍然无法识别MPI函数. 后来换了个32位的MPIC ...

  2. VS2010下配置Opencv2.4.3 .

    VS2008下OpenCV的配置过程在OpenCV论坛上写的很详细,具体过程可以见如下链接http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B ...

  3. VS2013下配置OpenCV 3.0.0 &&& VS2013下配置Opencv2.4.9

    最近做图像需要用到Matlab和OpenCV,一些东西真的是要深入的研究进去才会有所发现,但Matlab和C++都不是我擅长的语言,所以要很加油很加油才行啊!! 步入正题. 1.  环境:Win7 6 ...

  4. 【转】Win7下VS2010中配置Opencv2.4.4的方法(32位和64位都有效)(亲测成功)

    在vs2010下配置opencv是件痛苦的事情,一点点错误可能就会导致莫名其妙的报错,各种error让人郁闷不已,这里提供给大家一篇vs2010下配置opencv2.4.4的方法,我是64位的win7 ...

  5. Windows7+VS2012下OpenGL 4的环境配置

    系统环境 Windows 7 Ultimate x64,Visual Studio Ultimate 2012 Update 4,和一块支持OpenGL 4.x的显卡. 准备工作 首先用GPU Cap ...

  6. Windows下Python2.7配置OpenCV2.4.10

    所需文件: 1 Python2.7.13 链接: https://www.python.org/downloads/release/python-2713/ 这里选Windows 64位的安装包. 2 ...

  7. 基于OpenCV做“三维重建”(0)-- OpenCV3.2+VIZ6.3.0在vs2012下的编译和使用

    一.问题提出         ViZ对于显示3维的效果图来说,非常有帮助:我在使用OpenCV进行双目测距的过程中,有一些参数希望能够通过可视化的方法显示出来,所以参考了这方面相关的资料.做了一些实验 ...

  8. Opencv + vs2012环境配置

    首先获得最新的Opencv 2.4.10源码:opencv源码下载 一.Opencv环境变量配置 1.将源码安装到制定目录: 2.为Opencv 添加环境变量:计算机-->属性 点击高级系统设置 ...

  9. vs2010配置OpenCV2.4.7详细步骤

    vs2010配置opencv2.4.7 需要注意:opencv里x86的vc10对应vs2010版本,vc11对应vs2012版本,vc12对应vs2013及以上版本,若vs2013版本的软件配置时选 ...

随机推荐

  1. Tomasulo's Algorithm

    如果操作数在寄存器中,将会存在V字段,否则,设置Q字段来指示reservation station将会产生运算所需要的操作数 reorder buffer包含4个字段 the instruction ...

  2. Java对象的序列化和反序列化

    对象的序列化是指将对象转换为字节序列的过程 对象的反序列化是指将字节序列恢复对象的过程 主要有两种用途: 1.把对象的字节序列永久地保存在硬盘上,通常放在一个文件中. 2.在网络上传输对象的字节序列. ...

  3. Mediator(中介者)-对象行为型模式

    1.意图 用一个中介对象来封装一系列的对象交互.中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 2.动机 通过将集体行为封装在一个单独的中介者对象中,中介者 ...

  4. dojo grid 编辑问题

    今天dojo grid编辑小问题,找了半天才找到问题, 1.问题 2.原因 数据单元没有索引列->id 3.修改前代码 <!DOCTYPE HTML> <html lang=& ...

  5. oracle计算时间秒数差

    --计算plsql处理时间差 --qzq declare time1 timestamp; --开始时间 time2 timestamp; --结束时间 sum1 ); --时间差(s) begin ...

  6. TCP发消息续传文件

    1.自定义固定协议头部.格式:([head][body][filestream]) /// <summary> /// 数据包头部 /// </summary> [Struct ...

  7. Linux内核【链表】整理笔记(1)

    我们都知道Linux内核里的双向链表和学校里教给我们的那种数据结构还是些不一样.Linux采用了一种更通用的设计,将链表以及其相关操作函数从数据本身进行剥离,这样我们在使用链表的时候就不用自己去实现诸 ...

  8. [PHP] Xhprof 非侵入式使用指南

    一般使用 Xhprof ,按文档操作可以快速上手,文件头开启 Xhprof,应用结束处得到访问的url查看. 这种使用方式可以快速看到效果,同时也有一些不好的地方: 一是不利于重复利用写好的示例代码: ...

  9. 一个URL链接到一个页面发生了什么?

    最开始觉得这是一个很难理解的东西,后来看了很多人写的发现并没有那么难理解,本人只是一个学渣有什么说的不对的地方希望大家能够指出来! 一个URL从我们输入的那一刻起,到返回页面到底发生了什么呢? URL ...

  10. CentOS 6.5 x86_64系统手动释放内存

    1.查询当前内存使用情况和释放缓存的参数 redismaster 10:29:24 [~] [root] free -m total used free shared buffers cachedMe ...