OpenCV学习笔记(01)我的第一个OpenCV程序(环境配置)
昨天刚刚考完编译原理,私心想着可以做一些与考试无关的东西了。一直想做和图像处理相关的东西,趁这段时间有空学习一下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.libopencv_contrib249d.libopencv_core249d.libopencv_features2d249d.libopencv_flann249d.libopencv_gpu249d.libopencv_highgui249d.libopencv_imgproc249d.libopencv_legacy249d.libopencv_objdetect249d.libopencv_ts249d.libopencv_video249d.libopencv_nonfree249d.libopencv_ocl249d.libopencv_photo249d.libopencv_stitching249d.libopencv_superres249d.libopencv_videostab249d.libopencv_calib3d249.libopencv_contrib249.libopencv_core249.libopencv_features2d249.libopencv_flann249.libopencv_gpu249.libopencv_highgui249.libopencv_imgproc249.libopencv_legacy249.libopencv_ml249d.libopencv_objdetect249.libopencv_ts249.libopencv_video249.libopencv_nonfree249.libopencv_ocl249.libopencv_photo249.libopencv_stitching249.libopencv_superres249.libopencv_videostab249.lib
注意:不要有空行和空格
(3)、修改一下源代码
你应该看到源代码中有一行
这是我的电脑中的一张图片,所以你应该在相应的目录下放一张图片,名字随便啦,注意的是路径“\”要为“\\”。
四、大功告成
点击
执行你就会看到我在本文开始的时候展示的效果啦。
五、问题记录
中途我也遇到了不少的问题:
【问题一】:
原因是缺少MSVCR120D.dll
【解决】:
下载msvcr120d.dll然后将其拷贝到“C:\Windows\System32”打开命令提示符(以管理员方式运行)
执行:
还有其他的问题,不过只要按照我给的步骤去配置,一般不会出现什么大的问题。
不过,请相信一次性成功的概率还是很小的。遇到说明问题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程序(环境配置)的更多相关文章
- OpenCV 学习笔记 01 安装OpenCV及相关依赖库
本次学习是基于Window10进行的.语言为python3. 1 与opencv相关的库简介 1.1 numpy numpy 是 OpenCV 绑定 python 时所依赖的库,此意味着numpy在安 ...
- [原创]java WEB学习笔记01:javaWeb之tomcat的安装和配置
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 【C语言/C++编程学习笔记】你的第一个Windows程序!高级操作~
什么是windows编程?了解到Windows API 编程.Windows编程.Windows SDK 编程是一个概念.今天我们运用C语言来实现你的第一个真正的Windows程序. windows. ...
- Directx11学习笔记【三】 第一个D3D11程序
在先前的解决方案中新建一个新的Win32项目FirstD3D11Demo.在写代码之前,我们必须先添加dx11所需要的库.为了链接dx库,右键项目选择属性->vc++目录,在包含目录中添加你所安 ...
- cocos2d-x 2.1.4学习笔记01:windows平台搭建cocos2d-x开发环境
cocos2d-x的大致开发流程是,首先使用win32版进行代码编写并完成游戏,然后将代码迁移到对应的开发环境上进行交叉编译完成游戏打包,如iphone上是mac+xcode,android是ecli ...
- OpenCV 学习笔记03 findContours函数
opencv-python 4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...
- 【opencv学习笔记五】一个简单程序:图像读取与显示
今天我们来学习一个最简单的程序,即从文件读取图像并且创建窗口显示该图像. 目录 [imread]图像读取 [namedWindow]创建window窗口 [imshow]图像显示 [imwrite]图 ...
- OpenCV 学习笔记 07 目标检测与识别
目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV ...
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- opencv学习笔记(七)SVM+HOG
opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子 ...
随机推荐
- block inline 和 inline-block
概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素). block元素通常 ...
- sql server存储特殊字符解决办法
好久没来院子了,最近在学java了,再加上项目比较紧,最近都没怎么上,其实这几天在项目中学到不少东西,都能写下来,但是久而久之就忘了,还是得养成及时总结的好习惯啊,还有有时间一定要把那个小项目整理下来 ...
- Skype for Business Server 方案
方案说明: 高可用性的配置屏蔽了单点故障,使得当一个服务器节点失效时,另外的可用的节点能够进行服务的接管.可伸缩性的配置可以保证当即时沟通平台的使用用户增加时,该平台应该具有良好的可伸缩性,能非常方便 ...
- tensorflow模型持久化保存和加载--深度学习-神经网络
模型文件的保存 tensorflow将模型保持到本地会生成4个文件: meta文件:保存了网络的图结构,包含变量.op.集合等信息 ckpt文件: 二进制文件,保存了网络中所有权重.偏置等变量数值,分 ...
- 团队作业7——第二次项目冲刺(Beta版本)-第一篇
1.当天站立式会议照片: 2.工作分工: 团队成员 分工 郭达22120 项目整合,后台代码 刘德培44060 数据库模块后台连接 石浩洋22061 前台界面优化 曾繁钦22056 前台界面优化.测试 ...
- lintcode-187-加油站
187-加油站 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]. 你有一辆油箱容量无限大的汽车,现在要从 ...
- tomcat8配置管理员后仍然报403
tomcat8配置管理员后仍然报403 修改conf/tomcat-users.xml <role rolename="manager"/> <role ro ...
- cacti 安装perl 和XML::Simple
一.安装perl #tar zxvf perl-5.20.1.tar.gz #cd perl-5.20.1 #./Configure -de #make #make test #make in ...
- Android基础------Intent组件
1.什么是intent 同Activity一样,也是Android应用组件在Android中承担着一种指令输出的作用Intent负责对应用中一次操作的动作及动作相关的数据进行描述.Android则根据 ...
- [Leetcode] 2.Add Two Numbers(List To Long,模拟)
本题题意是指将两个数倒序存储在链表中,再将两数之和同样存储在链表中输出. 我最开始的思路是将每一位相加,再考虑是否进位,但这时就需要考虑一些情况,比较麻烦. 于是我决定采取另一种在网上新学到的方法:这 ...