万本电子书0元读

万本电子书0元读

顶部广告

OpenCV3编程入门电子书

涵盖OpenCV2、OpenCV3双版本的核心编程技巧 附赠OpenCV2、OpenCV3双版本总计200余个配套示例程序源代码 

售       价:¥

纸质售价:¥59.20购买纸书

326人正在读 | 0人评论 6.2

作       者:毛星云等

出  版  社:电子工业出版社

出版时间:2015-02-01

字       数:15.9万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
OpenCV在计算机视觉领域扮演着重要的角色。作为一个基于源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法。本书以当前*版本的OpenCV*常用*核心的组件模块为索引,深浅出地介绍了OpenCV2和OpenCV3中的强大功能、性能,以及新特性。书本配套的OpenCV2和OpenCV3双版本的示例代码包中,含有总计两百多个详细注释的程序源代码与思路说明。读者可以按图索骥,按技术方向行快速上手和深学习。 本书要求读者具有基础的C/C 知识,适合研究计算机视觉以及相关领域的在校学生和老师、初次触OpenCV但有一定C/C 编程基础的研究人员,以及已有过OpenCV 1.0编程经验,想快速了解并上手OpenCV2、OpenCV3编程的计算机视觉领域的专业人员。本书也适合于图像处理、计算机视觉领域的业余爱好者、源项目爱好者做为通向新版OpenCV的参考手册之用。 本书配套的【示例程序】、【.exe可执行文件】、【书内彩图】的下载可通过扫描本书封底或后勒口的二维码获取。<br/>【推荐语】<br/>涵盖OpenCV2、OpenCV3双版本的核心编程技巧 附赠OpenCV2、OpenCV3双版本总计200余个配套示例程序源代码 <br/>【作者】<br/>毛星云,90后,网络ID“浅墨”。微软VC 领域*价值专家(MVP),中国2013年度十大杰出IT博客作者,南京航空航天大学2014年度十大杰出青年。CSDN博客专家,2013年度CSDN博客之星,于CSDN写博数年,博客浏览量已逾252万人次。本科毕业于乌克兰国立航空航天大学以及南京航空航天大学,硕士就读于南京航空航天大学。已出版著作《逐梦旅程:Windows游戏编程之从零始》,个人事迹曾多次被人民网、新华网、凤凰网、网易新闻、新浪新闻、金陵晚报、现代快报等主流媒体报道。 CSDN博客:http://blog.csdn.net/poem_qianmo 联系邮箱:happylifemxy@163.com 新浪微博:@浅墨_毛星云<br/>
目录展开

版权

作者

前言

第一部分 快速上手OpenCV

第1章 邂逅OpenCV

1.1 OpenCV周边概念认知

1.1.1 图像处理、计算机视觉与OpenCV

1.1.2 OpenCV概述

1.1.3 起源及发展

1.1.4 应用概述

1.2 OpenCV基本架构分析

1.3 OpenCV3带来了什么

1.3.1 项目架构的改变

1.3.2 将OpenCV2代码升级到OpenCV3报错时的一些策略

1.4 OpenCV的下载、安装与配置

1.4.1 预准备:下载和安装集成开发环境

1.4.2 第一步:下载和安装OpenCV SDK

1.4.3 第二步:配置环境变量

1.4.4 第三步:工程包含(include)目录的配置

1.4.5 第四步:工程库(lib)目录的配置

1.4.6 第五步:链接库的配置

1.4.7 第六步:在Windows文件夹下加入OpenCV动态链接库

1.4.8 第七步:最终测试

1.4.9 可能遇到的问题和解决方案

1.5 快速上手OpenCV图像处理

1.5.1 第一个程序:图像显示

1.5.2 第二个程序:图像腐蚀

1.5.3 第三个程序:图像模糊

1.5.4 第四个程序:canny边缘检测

1.6 OpenCV视频操作基础

1.6.1 读取并播放视频

1.6.2 调用摄像头采集图像

1.7 本章小结

第2章 启程前的认知准备

2.1 OpenCV官方例程引导与赏析

2.1.1 彩色目标跟踪:Camshift

2.1.2 光流:optical flow

2.1.3 点追踪:lkdemo

2.1.4 人脸识别:objectDetection

2.1.5 支持向量机引导

2.2 开源的魅力:编译OpenCV源代码

2.2.1 下载安装CMake

2.2.2 使用CMake生成OpenCV源代码工程的解决方案

2.2.3 编译OpenCV源代码

2.3“opencv.hpp”头文件认知

2.4 命名规范约定

2.5 argc与argv参数解惑

2.5.1 初识main函数中的argc和argv

2.5.2 argc、argv的具体含义

2.5.3 Visual Studio中main函数的几种写法说明

2.5.4 总结

2.6 格式输出函数printf()简析

2.6.1 格式输出:printf()函数

2.6.2 示例程序:printf函数的用法示例

2.7 智能显示当前使用的OpenCV版本

2.8 本章小结

第3章 HighGUI图形用户界面初步

3.1 图像的载入、显示和输出到文件

3.1.1 OpenCV的命名空间

3.1.2 Mat类简析

3.1.3 图像的载入与显示概述

3.1.4 图像的载入:imread()函数

3.1.5 图像的显示:imshow()函数

3.1.6 关于InputArray类型

3.1.7 创建窗口:namedWindow()函数

3.1.8 输出图像到文件:imwrite()函数

3.1.9 综合示例程序:图像的载入、显示与输出

3.2 滑动条的创建和使用

3.2.1 创建滑动条:createTrackbar()函数

3.2.2 获取当前轨迹条的位置:getTrackbarPos()函数

3.3 鼠标操作

3.4 本章小结

第二部分 初探core组件

第4章 OpenCV数据结构与基本绘图

4.1 基础图像容器Mat

4.1.1 数字图像存储概述

4.1.2 Mat结构的使用

4.1.3 像素值的存储方法

4.1.4 显式创建Mat对象的七种方法

4.1.5 OpenCV中的格式化输出方法

4.1.6 输出其他常用数据结构

4.1.7 示例程序:基础图像容器Mat类的使用

4.2 常用数据结构和函数

4.2.1 点的表示:Point类

4.2.2 颜色的表示:Scalar类

4.2.3 尺寸的表示:Size类

4.2.4 矩形的表示:Rect类

4.2.5 颜色空间转换:cvtColor()函数

4.2.6 其他常用的知识点

4.3 基本图形的绘制

4.3.1 DrawEllipse()函数的写法

4.3.2 DrawFilledCircle()函数的写法

4.3.3 DrawPolygon()函数的写法

4.3.4 DrawLine()函数的写法

4.3.5 main函数的写法

4.4 本章小结

第5章 core组件进阶

5.1 访问图像中的像素

5.1.1 图像在内存之中的存储方式

5.1.2 颜色空间缩减

5.1.3 LUT函数:Look up table操作

5.1.4 计时函数

5.1.5 访问图像中像素的三类方法

5.1.6 示例程序

5.2 ROI区域图像叠加&图像混合

5.2.1 感兴趣区域:ROI

5.2.2 线性混合操作

5.2.3 计算数组加权和:addWeighted()函数

5.2.4 综合示例:初级图像混合

5.3 分离颜色通道、多通道图像混合

5.3.1 通道分离:split()函数

5.3.2 通道合并:merge()函数

5.3.3 示例程序:多通道图像混合

5.4 图像对比度、亮度值调整

5.4.1 理论依据

5.4.2 访问图片中的像素

5.4.3 示例程序:图像对比度、亮度值调整

5.5 离散傅里叶变换

5.5.1 离散傅里叶变换的原理

5.5.2 dft()函数详解

5.5.3 返回DFT最优尺寸大小:getOptimalDFTSize()函数

5.5.4 扩充图像边界:copyMakeBorder()函数

5.5.5 计算二维矢量的幅值:magnitude()函数

5.5.6 计算自然对数:log()函数

5.5.7 矩阵归一化:normalize()函数

5.5.8 示例程序:离散傅里叶变换

5.6 输入输出XML和YAML文件

5.6.1 XML和YAML文件简介

5.6.2 FileStorage类操作文件的使用引导

5.6.3 示例程序:XML和YAML文件的写入

5.6.4 示例程序:XML和YAML文件的读取

5.7 本章小结

第三部分 掌握imgproc组件

第6章 图像处理

6.1 线性滤波:方框滤波、均值滤波、高斯滤波

6.1.1 平滑处理

6.1.2 图像滤波与滤波器

6.1.3 线性滤波器的简介

6.1.4 滤波和模糊

6.1.5 邻域算子与线性邻域滤波

6.1.6 方框滤波(box Filter)

6.1.7 均值滤波

6.1.8 高斯滤波

6.1.9 线性滤波相关OpenCV源码剖析

6.1.10 OpenCV中GaussianBlur函数源码剖析

6.1.11 线性滤波核心API函数

6.1.12 图像线性滤波综合示例

6.2 非线性滤波:中值滤波、双边滤波

6.2.1 非线性滤波概述

6.2.2 中值滤波

6.2.3 双边滤波

6.2.4 非线性滤波相关核心API函数

6.2.5 OpenCV中的5种图像滤波综合示例

6.3 形态学滤波(1):腐蚀与膨胀

6.3.1 形态学概述

6.3.2 膨胀

6.3.3 腐蚀

6.3.4 相关OpenCV源码分析溯源

6.3.5 相关核心API函数讲解

6.3.6 综合示例:腐蚀与膨胀

6.4 形态学滤波(2):开运算、闭运算、形态学梯度、顶帽、黑帽

6.4.1 开运算

6.4.2 闭运算

6.4.3 形态学梯度

6.4.4 顶帽

6.4.5 黑帽

6.4.6 形态学滤波OpenCV源码分析溯源

6.4.7 核心API函数:morphologyEx()

6.4.8 各形态学操作使用范例一览

6.4.9 综合示例:形态学滤波

6.5 漫水填充

6.5.1 漫水填充的定义

6.5.2 漫水填充法的基本思想

6.5.3 实现漫水填充算法:floodFill函数

6.5.4 综合示例:漫水填充

6.6 图像金字塔与图片尺寸缩放

6.6.1 引言

6.6.2 关于图像金字塔

6.6.3 高斯金字塔

6.6.4 拉普拉斯金字塔

6.6.5 尺寸调整:resize()函数

6.6.6 图像金字塔相关API函数

6.6.7 综合示例:图像金字塔与图片尺寸缩放

6.7 阈值化

6.7.1 固定阈值操作:Threshold()函数

6.7.2 自适应阈值操作:adaptiveThreshold()函数

6.7.3 示例程序:基本阈值操作

6.8 本章小结

第7章 图像变换

7.1 基于OpenCV的边缘检测

7.1.1 边缘检测的一般步骤

7.1.2 canny算子

7.1.3 sobel算子

7.1.4 Laplacian 算子

7.1.5 scharr滤波器

7.1.6 综合示例:边缘检测

7.2 霍夫变换

7.2.1 霍夫变换概述

7.2.2 OpenCV中的霍夫线变换

7.2.3 霍夫线变换的原理

7.2.4 标准霍夫变换:HoughLines()函数

7.2.5 累计概率霍夫变换:HoughLinesP()函数

7.2.6 霍夫圆变换

7.2.7 霍夫梯度法的原理

7.2.8 霍夫梯度法的缺点

7.2.9 霍夫圆变换:HoughCircles()函数

7.2.10 综合示例:霍夫变换

7.3 重映射

7.3.1 重映射的概念

7.3.2 实现重映射:remap()函数

7.3.3 基础示例程序:基本重映射

7.3.4 综合示例程序:实现多种重映射

7.4 仿射变换

7.4.1 认识仿射变换

7.4.2 仿射变换的求法

7.4.3 进行仿射变换:warpAffine()函数

7.4.4 计算二维旋转变换矩阵:getRotationMatrix2D()函数

7.4.5 示例程序:仿射变换

7.5 直方图均衡化

7.5.1 直方图均衡化的概念和特点

7.5.2 实现直方图均衡化:equalizeHist()函数

7.5.3 示例程序:直方图均衡化

7.6 本章小结

第8章 图像轮廓与图像分割修复

8.1 查找并绘制轮廓

8.1.1 寻找轮廓:findContours()函数

8.1.2 绘制轮廓:drawContours()函数

8.1.3 基础示例程序:轮廓查找

8.1.4 综合示例程序:查找并绘制轮廓

8.2 寻找物体的凸包

8.2.1 凸包

8.2.2 寻找凸包:convexHull()函数

8.2.3 基础示例程序:凸包检测基础

8.2.4 综合示例程序:寻找和绘制物体的凸包

8.3 使用多边形将轮廓包围

8.3.1 返回外部矩形边界:boundingRect()函数

8.3.2 寻找最小包围矩形:minAreaRect()函数

8.3.3 寻找最小包围圆形:minEnclosingCircle()函数

8.3.4 用椭圆拟合二维点集:fitEllipse()函数

8.3.5 逼近多边形曲线:approxPolyDP()函数

8.3.6 基础示例程序:创建包围轮廓的矩形边界

8.3.7 基础示例程序:创建包围轮廓的圆形边界

8.3.8 综合示例程序:使用多边形包围轮廓

8.4 图像的矩

8.4.1 矩的计算:moments()函数

8.4.2 计算轮廓面积:contourArea()函数

8.4.3 计算轮廓长度:arcLength()函数

8.4.4 综合示例程序:查找和绘制图像轮廓矩

8.5 分水岭算法

8.5.1 实现分水岭算法:watershed()函数

8.5.2 综合示例程序:分水岭算法

8.6 图像修补

8.6.1 实现图像修补:inpaint()函数

8.6.2 综合示例程序:图像修补

8.7 本章小结

第9章 直方图与匹配

9.1 图像直方图概述

9.2 直方图的计算与绘制

9.2.1 计算直方图:calcHist()函数

9.2.2 找寻最值:minMaxLoc()函数

9.2.3 示例程序:绘制H—S直方图

9.2.4 示例程序:计算并绘制图像一维直方图

9.2.5 示例程序:绘制RGB三色直方图

9.3 直方图对比

9.3.1 对比直方图:compareHist()函数

9.3.2 示例程序:直方图对比

9.4 反向投影

9.4.1 引言

9.4.2 反向投影的工作原理

9.4.3 反向投影的作用

9.4.4 反向投影的结果

9.4.5 计算反向投影:calcBackProject()函数

9.4.6 通道复制:mixChannels()函数

9.4.7 综合程序:反向投影

9.5 模板匹配

9.5.1 模板匹配的概念与原理

9.5.2 实现模板匹配:matchTemplate()函数

9.5.3 综合示例:模板匹配

9.6 本章小结

第四部分 深入feature2d组件

第10章 角点检测

10.1 Harris角点检测

10.1.1 兴趣点与角点

10.1.2 角点检测

10.1.3 harris角点检测

10.1.4 实现Harris角点检测:cornerHarris()函数

10.1.5 综合示例:harris角点检测与绘制

10.2 Shi-Tomasi角点检测

10.2.1 Shi-Tomasi角点检测概述

10.2.2 确定图像强角点:goodFeaturesToTrack()函数

10.2.3 综合示例:Shi-Tomasi角点检测

10.3 亚像素级角点检测

10.3.1 背景概述

10.3.2 寻找亚像素角点:cornerSubPix()函数

10.3.3 综合示例:亚像素级角点检测

10.4 本章小结

第11章 特征检测与匹配

11.1 SURF特征点检测

11.1.1 SURF算法概览

11.1.2 SURF算法原理

11.1.3 SURF类相关OpenCV源码剖析

11.1.4 绘制关键点:drawKeypoints()函数

11.1.5 KeyPoint类

11.1.6 示例程序:SURF特征点检测

11.2 SURF特征提取

11.2.1 绘制匹配点:drawMatches()函数

11.2.2 BruteForceMatcher类源码分析

11.2.3 示例程序:SURF特征提取

11.3 使用FLANN进行特征点匹配

11.3.1 FlannBasedMatcher类的简单分析

11.3.2 找到最佳匹配:DescriptorMatcher::match方法

11.3.3 示例程序:使用FLANN进行特征点匹配

11.3.4 综合示例程序:FLANN结合SURF进行关键点的描述和匹配

11.3.5 综合示例程序:SIFT配合暴力匹配进行关键点描述和提取

11.4 寻找已知物体

11.4.1 寻找透视变换:findHomography()函数

11.4.2 进行透视矩阵变换:perspectiveTransform()函数

11.4.3 示例程序:寻找已知物体

11.5 ORB特征提取

11.5.1 ORB算法概述

11.5.2 相关概念认知

11.5.3 ORB类相关源码简单分析

11.5.4 示例程序:ORB算法描述与匹配

11.6 本章小结

附录

A1 配套示例程序清单

A2 随书额外附赠的程序一览

A3 书本核心函数清单

A4 Mat类函数一览

A4.1 构造函数:Mat::Mat

A4.2 析构函数Mat::~Mat

A4.3 Mat类成员函数

主要参考文献

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部