昨天刚刚考完编译原理,私心想着可以做一些与考试无关的东西了。一直想做和图像处理相关的东西,趁这段时间有空学习一下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. LeetCode 700——二叉搜索树中的搜索

    1. 题目 2. 解答 如果根节点为空,直接返回 NULL.如果根节点非空,从根节点开始循环查找,直到节点为空. 如果待查找的值大于当前节点值,节点指向右孩子: 如果待查找的值小于当前节点值,节点指向 ...

  2. visionpro吧-百度贴吧

    Halcon,Visionpro视频教程,观看下载地址:http://www.211code.com

  3. day21 TFRecord格式转换MNIST并显示

    首先简要介绍了下TFRecord格式以及内部实现protobuf协议,然后基于TFRecord格式,对MNIST数据集转换成TFRecord格式,写入本地磁盘文件,再从磁盘文件读取,通过pyplot模 ...

  4. 十六:The YARN Service Registry

    yarn 服务注册功能是让长期运行的程序注册为服务一直运行. yarn中运行的程序分为两类,一类是短程序,一类一直运行的长程序.第二种也称为服务.yarn服务注册就是让应用程序能把自己注册为服务,如h ...

  5. POJ 2826 An Easy Problem?!(线段交点+简单计算)

    Description It's raining outside. Farmer Johnson's bull Ben wants some rain to water his flowers. Be ...

  6. C语言 命令行参数 函数指针 gdb调试

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshul ...

  7. ACM 第七天

    水题 B - Minimum’s Revenge There is a graph of n vertices which are indexed from 1 to n. For any pair ...

  8. windows批处理学习(字符换操作)---04

    转自:https://www.cnblogs.com/DswCnblog/p/5432326.html 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特 ...

  9. 【Linux】- mv命令

    Linux mv命令用来为文件或目录改名.或将文件或目录移入其它位置. 语法 mv [options] source dest mv [options] source... directory 参数说 ...

  10. sublime Remote_encoding cp1252

    "remote_encoding": "cp1252",才能连接远程ftp