开始学习opencv!

1.什么是OpenCV

OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。

简单地说,OpenCV就是一个第三方关于视觉处理的开源库,使用该库可以采集摄像头拍摄的视频,可以处理图像,可以进行诸多关于视觉方面的操作。

本篇将讲述win7操作系统中Visual Studio 2010中OpenCV2.4.10的配置,主要分为4个部分:

  • Path设置
  • 头文件配置
  • 库文件配置
  • 链接库配置

2.具体操作

下载OpenCV2.4.10并安装到D盘的根目录。

点击下载,说是“安装”,其实就是解压
之所以选择D盘根目录,是为了不同电脑之间交流的方便,比如有若干台电脑的OpenCV都在D盘根目录的话,工程copy过去可以直接打开
之所以选择Version2.4.10是因为该版本较为稳定,没有太多bug

Path设置
计算机右键\属性\高级系统设置\环境变量
在环境变量对话框中的系统变量中选中Path变量,点击编辑按钮
对于32位编译环境,添加:;D:\opencv\build\x86\vc10\bin
对于64位编译环境,添加:;D:\opencv\build\x86\vc10\bin;D:\opencv\build\x64\vc10\bin
多少位编译环境取决于VS,具体在VS的Debug按钮后面的组合框中能看到,如果实在不清楚,按照64位编译环境的添加即可

头文件配置

新建一个控制台项目
视图\属性管理器,在新出现的“属性管理器”工作区中,点击Debug|Win32->Microsoft.Cpp.Win32.userDirectories,右键属性,打开属性页面
通用属性\VC++目录\包含目录,添加

D:\opencv\opencv\opencv\build\include
D:\opencv\opencv\opencv\build\include\opencv
D:\opencv\opencv\opencv\build\include\opencv2
为什么要添加其子文件夹笔者目前还不太清楚,只是测试了不添加后两个文件夹测试程序照样能运行,不过为了保险起见还是加上吧

库文件配置
属性页面中,通用属性\VC++目录\库目录,添加

链接库配置
属性页面中,通用属性\链接器\输入\附加的依赖项,添加
opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib

opencv_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_videostab2410.lib
opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib

中间的2410表明配置的是OpenCV2.4.10版,如果配置的是其他的版本修改数字即可

上面19个有后缀字母d的表示debug版本链接库,下面19个表示release版本链接库

由于OpenCV的bug,经过以上的配置Debug运行ok,但是release不行,解决方法如下:
想在release模式下运行出程序结果,在工程的release模式下,将不带d的lib(全部是19个)添加到【项目】->【属性】(注意这样打开的是当前工程的属性页,我们只需在这里将release版(即不带d)的相关lib添加进去)->【配置属性】->【链接器】->【输入】->【附加的依赖项】下即可

测试
#include 
#include 
#include 
using namespace cv;
int main()
{
Mat img=imread("pic.jpg");//读入一张图片
namedWindow("moverzp");//创建一个名为Test窗口
imshow("moverzp",img);//窗口中显示图像
waitKey(5000);//等待5000ms后窗口自动关闭
}

注:需要在该项目的根目录下添加一张名为pic.jpg的图片,否则程序会出错 \

3.总结

我们配置的只是一个工程,而不是VS2010,所以如果重建工程的话还是需要再重新配置一次,那岂不是很麻烦?不用那么麻烦,把本文配置的项目做一个备份,需要新建项目的时候copy一份备份修改即可
内存位置异常往往是没有载入相应的图片导致的(名称或者路径不对),所以实际项目中最好加上图片载入是否成功的判断

文章来源:moverzp的博客

paper 58 :机器视觉学习笔记(1)——OpenCV配置的更多相关文章

  1. 机器视觉学习笔记(5)——基于OpenCV的单目摄像机标定

    本文CameraCalibrator类源代码来自于OpenCV2 计算机视觉编程手册(Robert Laganiere 著 张静 译) 强烈建议阅读机器视觉学习笔记(4)--单目摄像机标定参数说明之后 ...

  2. 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法

    @RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...

  3. 基础学习笔记之opencv(6):实现将图片生成视频

    基础学习笔记之opencv(6):实现将图片生成视频 在做实验的过程中.难免会读视频中的图片用来处理,相反将处理好的图片又整理输出为一个视频文件也是非经常常使用的. 以下就来讲讲基于opencv的C+ ...

  4. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  5. go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])

    目录 go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时]) 静态配置 flag注入 在线热加载配置 远程配置中心 go微 ...

  6. Qt5学习笔记(1)-环境配置(win+64bit+VS2013)

    Qt5学习笔记(1)-环境配置 工欲善其事必先-不装-所以装软件 久不露面,赶紧打下酱油. 下载 地址:http://download.qt.io/ 这个小网页就可以下载到跟Qt有关的几乎所有大部分东 ...

  7. MVC缓存OutPutCache学习笔记 (一) 参数配置

    OutPutCache 参数详解 Duration : 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location : 缓存放置的位置; 该 ...

  8. 树莓派学习笔记——USB wifi配置指南

    0 前言     树莓派既能够使用有线网络又能够无线网络,假设使用有线网络不方便的话能够借助USB wifi无线网卡让树莓派也插上无线"翅膀". 可是和使用有线网络即插即用的方式不 ...

  9. 驱动开发学习笔记. 0.01 配置arm-linux-gcc 交叉编译器

    驱动开发读书笔记. 0.01 配置arm-linux-gcc 交叉编译器 什么是gcc: 就像windows上的VS 工具,用来编译代码,具体请自己搜索相关资料 怎么用PC机的gcc 和 arm-li ...

随机推荐

  1. 《linux内核设计与实现》读书笔记第一、二章

    第一章 Linux内核简介 1.1 Unix的历史 1971年,Unix被移植到PDP-11型机中. 1973年,Unix操作系统用C语言改写——为Unix系统的广泛移植铺平了道路. 1977年,伯克 ...

  2. vim编辑器配置修改

    刚上手的vim,黑底白字,看起来笨死了,于是一顿狂找,终于找到了配置方法. 配置当然要去etc目录下. cd /etc/vim ls -l                        //找到vim ...

  3. 【Android测试】【第十一节】Uiautomator——简介

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4872244.html 前言 在App的测试中,除了单元测试 ...

  4. Cocos2d-JS工程中的文件结构

    res文件夹存放资源文件 src文件夹是主要的程序代码 app.js是实现游戏场景的JavaScript文件 resource.js在src文件夹中,定义资源对应的变量 config.json保存模拟 ...

  5. SQLSERVER 表名数据库名作为变量 必须使用动态SQL(源自网络)

    动态语句基本语法: 1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_execut ...

  6. Aptana快捷键(方便查询)

    窗口类:Ctrl+ Shift +L 调出快捷键提示Ctrl+ W 关闭当前标签窗口Ctrl+ Shift + W 关闭当前标签窗口Ctrl+ F6 (或者是Aptana的Ctrl+Tab )下一个编 ...

  7. php创建网站问题

    网站在本地浏览的时候链接点击都提示The requested URL was not found on this server. 本地装的wamp,apache和php.ini都是好的 最后更改: 在 ...

  8. LeetCode Compare Version Numbers

    原题链接在这里:https://leetcode.com/problems/compare-version-numbers/ 用string.split()方法把原有string 从小数点拆成 str ...

  9. javascript:void(0)和javascript:;的用法

    一.JavaScript:void(0) 我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢 ...

  10. 网页flv下载探索_1

    最近看了一个优酷视频(非优酷网站,最终地址指向优酷),用chrome开发者工具,可找到flv地址如下,简单摘录如下: http://27.221.100.104/657D4D2878C3382C781 ...