平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10

接下来的很长一段时间我将沿着学习,记录整个学习过程和心得,既是自己的学习笔记,也为后来人提供一份参考资料。

由于我上半年研究了一段时间OpenCV,各种平台的安装使用都很熟练了,大家可以去看我前面的文章。主要是为了适配我们公司一个合作商的Android图像识别软件,于是把OpenCV往Android上移植,这里耗费了大量时间。另外还尝试过用OpenCV去做UVC录像,最终发现OpenCV擅长图像处理,不擅长视频处理,即使是专业视频处理开源库FFMPEG在Android上运行效果也不理想,所以用了AVILIB + H264LIB的方式录像,需要的童鞋可以去回溯我前面的文章。

好了,废话少说。没有安装开发环境的童鞋可以根据书本进行安装,我之前已经安装好了Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10

童鞋们,打开书本!红色文字是我的注释

注意这本书有配套源码,如果有不懂的地方可以直接去下载源码,运行看效果!

目录

第一部分 快速上手OpenCV 1

第1章 邂逅OpenCV 3
1.1 OpenCV周边概念认知 4
1.1.1 图像处理、计算机视觉与OpenCV4
1.1.2 OpenCV概述 4

注意OpenCV是由Intel建立的。现在已经是个超级跨平台的项目,Linux、Windows、Mac OS、Android、 iOS、Maemo、FreeBSD、OpenBSD都可以。
1.1.3 起源及发展 5
1.1.4 应用概述 6

应用:人机交互、物体识别、图像分区、人脸识别、动作识别、运动跟踪、机器人
1.2 OpenCV基本架构分析 7

OpenCV2共19个组件
1.3 OpenCV3带来了什么 11
1.3.1 项目架构的改变 11
1.3.2 将OpenCV2代码升级到OpenCV3报错时的一些策略 12
1.4 OpenCV的下载、安装与配置 14
1.4.1 预准备:下载和安装集成开发环境 14
1.4.2 第一步:下载和安装OpenCVSDK 15

官网:http://opencv.org
1.4.3 第二步:配置环境变量 16
1.4.4 第三步:工程包含(include)目录的配置 17

特别注意这一节有一个“一劳永逸”的工程配置方法!
1.4.5 第四步:工程库(lib)目录的配置 21
1.4.6 第五步:链接库的配置 22

这一节中,下面这堆文字大家肯定用的上,嘿嘿:

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_ml2410d.lib
opencv_objdetect2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_stitching2410d.lib
opencv_ts2410d.lib

opencv_videostab2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_superres2410d.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
opencv_objdetect2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_stitching2410.lib
opencv_ts2410.lib
opencv_videostab2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_superres2410.lib
1.4.7 第六步:在Windows文件夹下加入OpenCV动态链接库 25
1.4.8 第七步:最终测试 26
1.4.9 可能遇到的问题和解决方案27

问题5也许以后开发过程中会碰到!
1.5 快速上手OpenCV图像处理 28

学完下面4个例程,感觉自己棒棒哒!好厉害啊,我已经学会了图像处理了!
1.5.1 第一个程序:图像显示 29
1.5.2 第二个程序:图像腐蚀 30
1.5.3 第三个程序:图像模糊 31
1.5.4 第四个程序:canny边缘检测 32
1.6 OpenCV视频操作基础 34
1.6.1 读取并播放视频 34

体验下用OpenCV,只要3条语句就可以播放视频,预览摄像头,非常便捷!
1.6.2 调用摄像头采集图像 35
1.7 本章小结 38

第2章 启程前的认知准备 39
2.1 OpenCV官方例程引导与赏析 40

刚开始学习,不必去深究后面5个例子背后的原理,直接运行源码看看效果,感受下OpenCV的强大!彩色目标跟踪很有意思。
2.1.1 彩色目标跟踪:Camshift41
2.1.2 光流:opticalflow 42
2.1.3 点追踪:lkdemo 43
2.1.4 人脸识别:objectDetection43
2.1.5 支持向量机引导 44
2.2 开源的魅力:编译OpenCV源代码 45

初学者暂时没有必要去编译源代码,先学会用再说。
2.2.1 下载安装CMake 45
2.2.2 使用CMake生成OpenCV源代码工程的解决方案 46
2.2.3 编译OpenCV源代码 50
2.3 “opencv.hpp”头文件认知 53

后面的几个章节是C语言编程方面的知识,命名规范、main函数的参数argc/argv、printf函数用法,不知道的童鞋可以看下,知道的可以直接略过!
2.4 命名规范约定 54
2.5 argc与argv参数解惑 56
2.5.1 初识main函数中的argc和argv 56
2.5.2 argc、argv的具体含义 57
2.5.3 Visual Studio中main函数的几种写法说明 58
2.5.4 总结 59
2.6 格式输出函数printf()简析 59
2.6.1 格式输出:printf()函数 59
2.6.2 示例程序:printf函数的用法示例 60
2.7 智能显示当前使用的OpenCV版本 61
2.8 本章小结 61

第3章 HighGUI图形用户界面初步 63
3.1 图像的载入、显示和输出到文件 64
3.1.1 OpenCV的命名空间64

OpenCV程序标配:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

3.1.2 Mat类简析 64
3.1.3 图像的载入与显示概述 65
3.1.4 图像的载入:imread()函数 65

Mat imread(const string &filename, int flags = 1);

bmp jpeg png tif格式基本都支持

  • flags > 0 返回一个3通道的彩色图像,注意存储顺序为BGR(蓝绿红),而不是RGB
  • flags = 0 返回灰度图像
  • flags < 0 返回Alpha通道的加载图像

3.1.5 图像的显示:imshow()函数 66
3.1.6 关于InputArray类型 67
3.1.7 创建窗口:namedWindow()函数 67

void namedWindow(const string &winname, int flags = WINDOW_AUTOSIZE);

  • flags = WINDOW_NORMAL,用户可以改变窗口的大小
  • flags = WINDOW_AUTOSIZE,窗口根据图片大小自适应,并且用户不能手动改变窗口大小
  • flags = WINDOWS_OPENGL,支持OpenGL

3.1.8 输出图像到文件:imwrite()函数 68
3.1.9 综合示例程序:图像的载入、显示与输出 70
3.2 滑动条的创建和使用 73
3.2.1 创建滑动条:createTrackbar()函数 73

int createTrackBar(const string &trackbarname, const string &winname, int *value, int count, TrackbarCallback onChange=0, void *userdata=0);

  • value,滑块创建时的初始值
  • count,滑块的最大位置值,最小值都是0
  • onChange,回调函数,每次滑块位置改变时,都会进行回调
  • userdata,用户传给回调函数的数据

3.2.2 获取当前轨迹条的位置:getTrackbarPos()函数 76
3.3 鼠标操作 76

void setMouseCallback(const string &winname, MouseCallback onMouse, void *userdata=0);

第二个参数,onMouse,窗口里每次鼠标事件发生后的回调函数。原型:void callback(int event, int x, int y, int flags, void *param),event是鼠标事件,x y是鼠标指针坐标值

3.4 本章小结 80

《OpenCV3编程入门-毛星云》第一部分 快速上手OpenCV相关推荐

  1. 《OpenCV3编程入门-毛星云》第三部分 掌握imgproc组件

    平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10 截止今天我终于把<OpenCV3编程入门-毛星云>这本书看完了,看了将近两个月终于看 ...

  2. 图像识别(5)——《OpenCV3编程入门-毛星云》第三部分 掌握imgproc组件

    博主QQ:1356438802 QQ群:473383394--UVC&OPENCV473383394 平台:Win7 64bits + Visual Studio 2012 + OpenCV  ...

  3. opencv3编程入门毛星云(第三章3.18-3.21)

    3.1.8输出图像: #include<opencv2/opencv.hpp> #include <stdio.h> #include<vector> using ...

  4. 原创 OpenCV3编程入门 学习笔记(总)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_36163358/article/ ...

  5. OpenCV3编程入门 学习笔记(总)

    OpenCV3编程入门 学习笔记 2018.12.12-2018.12.29 此博客为在看过毛星云版<OpenCV3编程入门>后所总结的一本笔记,可供复习使用. 文章目录 OpenCV3编 ...

  6. 图像识别(2)——《OpenCV3编程入门》毛星云编著

    博主QQ:1356438802 QQ群:473383394--UVC&OpenCV47 最近几天开始收集图像识别的相关资料: 程序开源库主要就是OpenCV,这是主流工具,所以我暂时也没去了解 ...

  7. 【资源】OpenCV3编程入门_毛星云

    OpenCV在计算机视觉领域扮演着重要的角色.作为一个基于开源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法.<OpenCV3编程入门>以当前最新版本的 ...

  8. 【浅墨著作】 OpenCV3编程入门 内容简介 勘误 配套源代码下载

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 经过近一 ...

  9. 【《OpenCV3编程入门》内容简介勘误配套源代码下载

     录 (?) [+] 一前言 二内容安排 三适合阅读本书的读者 四书本目录 第一部分 快速上手OpenCV 1 第1章 邂逅OpenCV 3 1 OpenCV周边概念认知 4 2 OpenCV基本 ...

最新文章

  1. Python 骚操作:微信远程控制电脑
  2. java synchronized 使用_Java中Synchronized的用法
  3. 苹果雪豹操作系统正式版_iOS 12.3.1正式版“意外”推送,iPhone修复诸多问题!...
  4. laravel框架中引入Workerman
  5. asp.net链接mysql数据库------------【个人收集】
  6. 你的心事我全知晓——心情日记小程序丨实战
  7. Python递归通用接口响应深层提取
  8. 多线程场景下使用 ArrayList,这几点一定要注意!
  9. jquery中的$(function(){})和document.ready(function(){})和jQuery(function () {}
  10. Android WebView无法播放视频或直播,关闭界面后任在播放的问题;
  11. HTML:对话框插件thickbox使用技巧
  12. 如何制定项目里程碑?
  13. Linux系列课程之一Linux的介绍
  14. java多文件生成zip_如何在java中创建多部分压缩zip文件
  15. 计算机蓝屏无法启动代码50,win7系统出现蓝屏代码0x0000050怎么解决
  16. export PATHONPATH的用法
  17. 国内第一创作平台大佬,教你如何写好一篇技术博客?
  18. Java动态代理技术-我的浅显认识
  19. ROS环境问题:多个工作空间的环境变量问题(source .bashrc配置文件)
  20. 人工智能的洪流(python N0.1)

热门文章

  1. 语音信号处理常用语料库下载地址
  2. 面试官都扯不过你系列之集合框架类总结
  3. 中国式父母计算机科学家攻略,中国式家长清华大学攻略全篇,中国式家长高分攻略...
  4. List和Set的特点对比
  5. 自媒体热点文的创作模板,简单3步,写出百万爆文
  6. CoinPOS开启区块链券商新时代-CPOS隆重上线非小号平台
  7. 什么是量化交易接口?跟量化平台是一个意思吗?
  8. 唐金州的Vue开发实战学习笔记(基础篇)
  9. LR8.0、8.1、9.0下载和破解方法
  10. python将数值代入方程_使用 Python 解数学方程