昨天刚刚考完编译原理,私心想着可以做一些与考试无关的东西了。一直想做和图像处理相关的东西,趁这段时间有空学习一下OpenCV,搭建环境真是一件麻烦的事情,搞了近三个小时终于OK了。先来张图:

大致描述一下步骤吧:

一、安装前准备

1、VS2012(网上看到很多用的VS2010,但是基本不影响)

2、OpenCV 安装包(我下载的是最新的2.4.9)

二、安装OpenCV

    1、解压OPenCV

     说是安装,其实就是解压,OpenCV的Windows安装程序就是一个自解压程序:

这里我解压到C:\Program Files(你也可以解压到你喜欢的目录下面)

解压后会自动创建opencv目录,不需要手动创建。解压后的大小大约3.7G,解压需要保证足够的空间:

    2、配置环境变量

计算机->属性->搞基系统设置->环境变量

在Path后面添加:C:\Program Files\opencv\build\x86\vc12\bin 注意环境变量是以英文分号(;)分隔的.

三、创建一个测试工程

1、在VS2012中创建一个VC++空项目

2、新建一个C++文件,命名为:Test.cpp

将下面的代码复制到Test.cpp文件中

  1: #include<iostream>
  2: #include <opencv2/core/core.hpp>
  3: #include <opencv2/highgui/highgui.hpp>
  4: 
  5: 
  6: using namespace cv;
  7: 
  8: 
  9: int main()
 10: {
 11: 	// 读入一张图片(游戏原画)
 12: 	Mat img=imread("D:\\xiaoxi.jpg");
 13: 	// 创建一个名为 "游戏原画"窗口
 14: 	cvNamedWindow("游戏原画");
 15: 	// 在窗口中显示游戏原画
 16: 	imshow("游戏原画",img);
 17: 	// 等待10000 ms后窗口自动关闭
 18: 	waitKey(10000);
 19: 
 20: }

3、工程配置

这时候你会看到一堆的错误,没关系,下面对工程进行配置:

(1)、右键工程->属性

分别配置包含目录和库目录:

这个包含目录和库的路径根据你的解压路径确定,我的opencv是解压到C:\Program Files文件下。

注意:设置库的路径的时候需要根据你的VS版本进行选择我的是32位VS2012,故选择x86\vc12下面的lib,如果你是vs2010则应该选择相应平台下的vc10下的lib.

    (2)、附加依赖项:

           

将下面的.lib文件目录拷贝到里面设置:

opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249d.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib

注意:不要有空行和空格

(3)、修改一下源代码

你应该看到源代码中有一行

Mat img=imread("D:\\xiaoxi.jpg");

这是我的电脑中的一张图片,所以你应该在相应的目录下放一张图片,名字随便啦,注意的是路径“\”要为“\\”。

四、大功告成

点击

执行你就会看到我在本文开始的时候展示的效果啦。

五、问题记录

中途我也遇到了不少的问题:

【问题一】:

原因是缺少MSVCR120D.dll

【解决】:

下载msvcr120d.dll然后将其拷贝到“C:\Windows\System32”打开命令提示符(以管理员方式运行)

执行:

regsvr32 C:\Windows\System32\msvcr120d.dll

还有其他的问题,不过只要按照我给的步骤去配置,一般不会出现什么大的问题。

不过,请相信一次性成功的概率还是很小的。遇到说明问题baidu一下,今本上就能解决了。

最后在配置的过程中参照了下面的文章:

文章一:【OpenCV入门教程之一】 安装OpenCV:OpenCV 2.4.8或OpenCV 2.4.9 +VS 开发环境配置

文章二:How to build applications with OpenCV inside the Microsoft Visual Studio

 

OpenCV学习笔记(01)我的第一个OpenCV程序(环境配置)的更多相关文章

  1. OpenCV 学习笔记 01 安装OpenCV及相关依赖库

    本次学习是基于Window10进行的.语言为python3. 1 与opencv相关的库简介 1.1 numpy numpy 是 OpenCV 绑定 python 时所依赖的库,此意味着numpy在安 ...

  2. [原创]java WEB学习笔记01:javaWeb之tomcat的安装和配置

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. 【C语言/C++编程学习笔记】你的第一个Windows程序!高级操作~

    什么是windows编程?了解到Windows API 编程.Windows编程.Windows SDK 编程是一个概念.今天我们运用C语言来实现你的第一个真正的Windows程序. windows. ...

  4. Directx11学习笔记【三】 第一个D3D11程序

    在先前的解决方案中新建一个新的Win32项目FirstD3D11Demo.在写代码之前,我们必须先添加dx11所需要的库.为了链接dx库,右键项目选择属性->vc++目录,在包含目录中添加你所安 ...

  5. cocos2d-x 2.1.4学习笔记01:windows平台搭建cocos2d-x开发环境

    cocos2d-x的大致开发流程是,首先使用win32版进行代码编写并完成游戏,然后将代码迁移到对应的开发环境上进行交叉编译完成游戏打包,如iphone上是mac+xcode,android是ecli ...

  6. OpenCV 学习笔记03 findContours函数

    opencv-python   4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...

  7. 【opencv学习笔记五】一个简单程序:图像读取与显示

    今天我们来学习一个最简单的程序,即从文件读取图像并且创建窗口显示该图像. 目录 [imread]图像读取 [namedWindow]创建window窗口 [imshow]图像显示 [imwrite]图 ...

  8. OpenCV 学习笔记 07 目标检测与识别

    目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV ...

  9. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  10. opencv学习笔记(七)SVM+HOG

    opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子 ...

随机推荐

  1. java实现网页截图

    使用工具 java+selenium+phantomjs /chromedriver /firefox 1.分别是 phantomjs插件 google截图插件 和 firefox火狐浏览器截图插件2 ...

  2. 文件上传:CommonsMultipartResolver

    一. 简介 CommonsMultipartResolver是基于Apache的Commons FileUpload来实现文件上传功能的,主要作用是配置文件上传的一些属性. 二. 配置 1)依赖Apa ...

  3. LCD1602指令集解读

    LCD1602指令集(11个)     1.清屏指令(clear display)   RS=0 ,R/w=0, 01H 功能:清除液晶显示器,即将DDRAM中的内容全部填入20H(空白字符)     ...

  4. 性能度量之Confusion Matrix

    例子:一个Binary Classifier 假设我们要预测图片中的数字是否为数字5.如下面代码. X_train为训练集,每一个instance为一张28*28像素的图片,共784个features ...

  5. nodejs笔记--mysql篇(四)

    测试连接 var mysql = require('mysql'); //调用MySQL模块 //创建一个connection var connection = mysql.createConnect ...

  6. 又见CLOSE_WAIT

    原文: http://mp.weixin.qq.com/s?__biz=MzI4MjA4ODU0Ng==&mid=402163560&idx=1&sn=5269044286ce ...

  7. Martian Addition

    In the 22nd Century, scientists have discovered intelligent residents live on the Mars. Martians are ...

  8. sql查询 同一个字段下另一个字段个数

    select seriesid , count(reportid) from reportsystem group by seriesidhaving count(reportid) > 1

  9. Java 类和Static关键字

    类的定义 类的命名.首字母大写 大括号后面没有分号 成员变量 Java会自动初始化成员变量但是不会自动初始化局部变量: 可以在定义成员变量是直接初始化,成员变量的作用范围在整个类体 对象的创建和引用的 ...

  10. LintCode-67.二叉树的中序遍历

    二叉树的中序遍历 给出一棵二叉树,返回其中序遍历. 样例 给出一棵二叉树 {1,#,2,3}, 返回 [1,3,2]. 挑战 你能使用非递归实现么? 标签 递归 二叉树 二叉树遍历 code /** ...