图书介绍
OpenCV3编程入门PDF|Epub|txt|kindle电子书版本网盘下载
![OpenCV3编程入门](https://www.shukui.net/cover/69/32785608.jpg)
- 毛星云 著
- 出版社:
- ISBN:
- 出版时间:2015
- 标注页数:0页
- 文件大小:61MB
- 文件页数:465页
- 主题词:
PDF下载
下载说明
OpenCV3编程入门PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 快速上手OpenCV1
第1章 邂逅OpenCV3
1.1 OpenCV周边概念认知4
1.1.1 图像处理、计算机视觉与OpenCV4
1.1.2 OpenCV概述4
1.1.3 起源及发展5
1.1.4 应用概述6
1.2 OpenCV基本架构分析7
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 第一步:下载和安装OpenCV SDK15
1.4.3 第二步:配置环境变量16
1.4.4 第三步:工程包含(include)目录的配置17
1.4.5 第四步:工程库(lib)目录的配置21
1.4.6 第五步:链接库的配置22
1.4.7 第六步:在Windows文件夹下加入OpenCV动态链接库25
1.4.8 第七步:最终测试26
1.4.9 可能遇到的问题和解决方案27
1.5 快速上手OpenCV图像处理28
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
1.6.2 调用摄像头采集图像35
1.7 本章小结38
第2章 启程前的认知准备39
2.1 OpenCV官方例程引导与赏析40
2.1.1 彩色目标跟踪:Camshift41
2.1.2 光流:optical flow42
2.1.3 点追踪:lkdemo43
2.1.4 人脸识别:obj ectDetection43
2.1.5 支持向量机引导44
2.2 开源的魅力:编译OpenCV源代码45
2.2.1 下载安装CMake45
2.2.2 使用CMake生成OpenCV源代码工程的解决方案46
2.2.3 编译OpenCV源代码50
2.3 “opencv.hpp”头文件认知53
2.4 命名规范约定54
2.5 argc与argv参数解惑56
2.5.1 初识main函数中的argc和argv56
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
3.1.2 Mat类简析64
3.1.3 图像的载入与显示概述65
3.1.4 图像的载入:imread()函数65
3.1.5 图像的显示:imshow()函数66
3.1.6 关于InputArray类型67
3.1.7 创建窗口:namedWindow()函数67
3.1.8 输出图像到文件:imwrite()函数68
3.1.9 综合示例程序:图像的载入、显示与输出70
3.2 滑动条的创建和使用73
3.2.1 创建滑动条:createTrackbar()函数73
3.2.2 获取当前轨迹条的位置:getTrackbarPos()函数76
3.3 鼠标操作76
3.4 本章小结80
第二部分 初探core组件83
第4章 OpenCV数据结构与基本绘图85
4.1 基础图像容器Mat86
4.1.1 数字图像存储概述86
4.1.2 Mat结构的使用86
4.1.3 像素值的存储方法88
4.1.4 显式创建Mat对象的七种方法89
4.1.5 OpenCV中的格式化输出方法91
4.1.6 输出其他常用数据结构94
4.1.7 示例程序:基础图像容器Mat类的使用95
4.2 常用数据结构和函数95
4.2.1 点的表示:Point类96
4.2.2 颜色的表示:Scalar类96
4.2.3 尺寸的表示:Size类96
4.2.4 矩形的表示:Rect类97
4.2.5 颜色空间转换:cvtColor()函数98
4.2.6 其他常用的知识点100
4.3 基本图形的绘制100
4.3.1 DrawEllipse()函数的写法101
4.3.2 DrawFilledCircle()函数的写法102
4.3.3 DrawPolygon() 函数的写法102
4.3.4 DrawLine()函数的写法103
4.3.5 main函数的写法104
4.4 本章小结106
第5章 core组件进阶107
5.1 访问图像中的像素108
5.1.1 图像在内存之中的存储方式108
5.1.2 颜色空间缩减108
5.1.3 LUT函数:Look up table操作109
5.1.4 计时函数110
5.1.5 访问图像中像素的三类方法110
5.1.6 示例程序114
5.2 ROI区域图像叠加&图像混合114
5.2.1 感兴趣区域:ROI115
5.2.2 线性混合操作116
5.2.3 计算数组加权和:addWeighted()函数117
5.2.4 综合示例:初级图像混合120
5.3 分离颜色通道、多通道图像混合125
5.3.1 通道分离:split()函数125
5.3.2 通道合并:merge()函数126
5.3.3 示例程序:多通道图像混合127
5.4 图像对比度、亮度值调整131
5.4.1 理论依据131
5.4.2 访问图片中的像素131
5.4.3 示例程序:图像对比度、亮度值调整132
5.5 离散傅里叶变换135
5.5.1 离散傅里叶变换的原理135
5.5.2 dft()函数详解136
5.5.3 返回DFT最优尺寸大小:getOptimalDFTSize()函数137
5.5.4 扩充图像边界:copyMakeBorder函数137
5.5.5 计算二维矢量的幅值:magnitude()函数138
5.5.6 计算自然对数:log()函数138
5.5.7 矩阵归一化:normalize()函数138
5.5.8 示例程序:离散傅里叶变换139
5.6 输入输出XML和YAML文件144
5.6.1 XML和YAML文件简介144
5.6.2 FileStorage类操作文件的使用引导144
5.6.3 示例程序:XML和YAML文件的写入147
5.6.4 示例程序:XML和YAML文件的读取148
5.7 本章小结150
第三部分 掌握imgproc组件151
第6章 图像处理153
6.1 线性滤波:方框滤波、均值滤波、高斯滤波154
6.1.1 平滑处理154
6.1.2 图像滤波与滤波器154
6.1.3 线性滤波器的简介155
6.1.4 滤波和模糊155
6.1.5 邻域算子与线性邻域滤波155
6.1.6 方框滤波(box Filter)156
6.1.7 均值滤波157
6.1.8 高斯滤波159
6.1.9 线性滤波相关OpenCV源码剖析160
6.1.10 OpenCV中GaussianBlur函数源码剖析164
6.1.11 线性滤波核心API函数165
6.1.12 图像线性滤波综合示例170
6.2 非线性滤波:中值滤波、双边滤波175
6.2.1 非线性滤波概述175
6.2.2 中值滤波175
6.2.3 双边滤波177
6.2.4 非线性滤波相关核心API函数178
6.2.5 OpenCV中的5种图像滤波综合示例181
6.3 形态学滤波(1):腐蚀与膨胀187
6.3.1 形态学概述187
6.3.2 膨胀188
6.3.3 腐蚀189
6.3.4 相关OpenCV源码分析溯源190
6.3.5 相关核心API函数讲解191
6.3.6 综合示例:腐蚀与膨胀195
6.4 形态学滤波(2):开运算、闭运算、形态学梯度、顶帽、黑帽198
6.4.1 开运算199
6.4.2 闭运算200
6.4.3 形态学梯度200
6.4.4 顶帽201
6.4.5 黑帽202
6.4.6 形态学滤波OpenCV源码分析溯源203
6.4.7 核心API函数:morPhologyEx()205
6.4.8 各形态学操作使用范例一览206
6.4.9 综合示例:形态学滤波208
6.5 漫水填充214
6.5.1 漫水填充的定义214
6.5.2 漫水填充法的基本思想214
6.5.3 实现漫水填充算法:floodFill函数214
6.5.4 综合示例:漫水填充216
6.6 图像金字塔与图片尺寸缩放223
6.6.1 引言223
6.6.2 关于图像金字塔223
6.6.3 高斯金字塔225
6.6.4 拉普拉斯金字塔226
6.6.5 尺寸调整:resize()函数227
6.6.6 图像金字塔相关API函数230
6.6.7 综合示例:图像金字塔与图片尺寸缩放234
6.7 阈值化237
6.7.1 固定阈值操作:Threshold()函数238
6.7.2 自适应阈值操作:adaptiveThreshold()函数239
6.7.3 示例程序:基本阈值操作240
6.8 本章小结244
第7章 图像变换247
7.1 基于OpenCV的边缘检测248
7.1.1 边缘检测的一般步骤248
7.1.2 canny算子248
7.1.3 sobel算子253
7.1.4 Laplacian算子256
7.1.5 scharr滤波器259
7.1.6 综合示例:边缘检测262
7.2 霍夫变换267
7.2.1 霍夫变换概述267
7.2.2 OpenCV中的霍夫线变换268
7.2.3 霍夫线变换的原理268
7.2.4 标准霍夫变换:HoughLines()函数270
7.2.5 累计概率霍夫变换:HoughLinesP()函数272
7.2.6 霍夫圆变换274
7.2.7 霍夫梯度法的原理275
7.2.8 霍夫梯度法的缺点276
7.2.9 霍夫圆变换:HoughCircles()函数276
7.2.10 综合示例:霍夫变换278
7.3 重映射281
7.3.1 重映射的概念281
7.3.2 实现重映射:remap()函数282
7.3.3 基础示例程序:基本重映射283
7.3.4 综合示例程序:实现多种重映射285
7.4 仿射变换289
7.4.1 认识仿射变换289
7.4.2 仿射变换的求法290
7.4.3 进行仿射变换:warpAffine()函数291
7.4.4 计算二维旋转变换矩阵:getRotationMatrix2D()函数292
7.4.5 示例程序:仿射变换292
7.5 直方图均衡化295
7.5.1 直方图均衡化的概念和特点296
7.5.2 实现直方图均衡化:equalizeHist()函数297
7.5.3 示例程序:直方图均衡化298
7.6 本章小结300
第8章 图像轮廓与图像分割修复303
8.1 查找并绘制轮廓304
8.1.1 寻找轮廓:findContours()函数304
8.1.2 绘制轮廓:drawContours()函数305
8.1.3 基础示例程序:轮廓查找306
8.1.4 综合示例程序:查找并绘制轮廓308
8.2 寻找物体的凸包312
8.2.1 凸包312
8.2.2 寻找凸包:convexHull()函数313
8.2.3 基础示例程序:凸包检测基础313
8.2.4 综合示例程序:寻找和绘制物体的凸包315
8.3 使用多边形将轮廓包围318
8.3.1 返回外部矩形边界:boundingRect()函数318
8.3.2 寻找最小包围矩形:minAreaRect()函数318
8.3.3 寻找最小包围圆形:minEnclosingCircle()函数318
8.3.4 用椭圆拟合二维点集:fitEllipse()函数319
8.3.5 逼近多边形曲线:approxPolyDP()函数319
8.3.6 基础示例程序:创建包围轮廓的矩形边界319
8.3.7 基础示例程序:创建包围轮廓的圆形边界321
8.3.8 综合示例程序:使用多边形包围轮廓324
8.4 图像的矩327
8.4.1 矩的计算:moments()函数328
8.4.2 计算轮廓面积:contourArea()函数328
8.4.3 计算轮廓长度:arcLength()函数328
8.4.4 综合示例程序:查找和绘制图像轮廓矩329
8.5 分水岭算法333
8.5.1 实现分水岭算法:watershed()函数334
8.5.2 综合示例程序:分水岭算法334
8.6 图像修补338
8.6.1 实现图像修补:inpaint()函数340
8.6.2 综合示例程序:图像修补341
8.7 本章小结343
第9章 直方图与匹配345
9.1 图像直方图概述346
9.2 直方图的计算与绘制347
9.2.1 计算直方图:calcHist()函数347
9.2.2 找寻最值:minMaxLoc()函数348
9.2.3 示例程序:绘制H—S直方图348
9.2.4 示例程序:计算并绘制图像一维直方图350
9.2.5 示例程序:绘制RGB三色直方图352
9.3 直方图对比355
9.3.1 对比直方图:compareHist()函数355
9.3.2 示例程序:直方图对比356
9.4 反向投影360
9.4.1 引言360
9.4.2 反向投影的工作原理360
9.4.3 反向投影的作用361
9.4.4 反向投影的结果361
9.4.5 计算反向投影:calcBackProject()函数361
9.4.6 通道复制:mixChannels()函数362
9.4.7 综合程序:反向投影363
9.5 模板匹配367
9.5.1 模板匹配的概念与原理367
9.5.2 实现模板匹配:matchTemplate()函数367
9.5.3 综合示例:模板匹配369
9.6 本章小结373
第四部分 深入feature2d组件375
第10章 角点检测377
10.1 Harris角点检测378
10.1.1 兴趣点与角点378
10.1.2 角点检测378
10.1.3 harris角点检测379
10.1.4 实现Harris角点检测:cornerHarris()函数379
10.1.5 综合示例:harris角点检测与绘制381
10.2 Shi-Tomasi角点检测384
10.2.1 Shi-Tomasi角点检测概述384
10.2.2 确定图像强角点:goodFeaturesToTrack()函数384
10.2.3 综合示例:Shi-Tomasi角点检测385
10.3 亚像素级角点检测388
10.3.1 背景概述388
10.3.2 寻找亚像素角点:comerSubPix()函数389
10.3.3 综合示例:亚像素级角点检测389
10.4 本章小结392
第11章 特征检测与匹配395
11.1 SURF特征点检测396
11.1.1 SURF算法概览396
11.1.2 SURF算法原理396
11.1.3 SURF类相关OpenCV源码剖析400
11.1.4 绘制关键点:drawKeypoints()函数401
11.1.5 KeyPoint类402
11.1.6 示例程序:SURF特征点检测402
11.2 SURF特征提取405
11.2.1 绘制匹配点:drawMatches()函数405
11.2.2 BruteForceMatcher类源码分析407
11.2.3 示例程序:SURF特征提取408
11.3 使用FLANN进行特征点匹配410
11.3.1 FlannBasedMatcher类的简单分析410
11.3.2 找到最佳匹配:DescriptorMatcher::match方法411
11.3.3 示例程序:使用FLANN进行特征点匹配411
11.3.4 综合示例程序:FLANN结合SURF进行关键点的描述和匹配413
11.3.5 综合示例程序:SIFT配合暴力匹配进行关键点描述和提取417
11.4 寻找己知物体420
11.4.1 寻找透视变换:findHomography()函数421
11.4.2 进行透视矩阵变换:perspectiveTransform()函数421
11.4.3 示例程序:寻找己知物体422
11.5 ORB特征提取425
11.5.1 ORB算法概述425
11.5.2 相关概念认知425
11.5.3 ORB类相关源码简单分析426
11.5.4 示例程序:ORB算法描述与匹配426
11.6 本章小结430
附录433
A1配套示例程序清单433
A2随书额外附赠的程序一览436
A3书本核心函数清单439
A4Mat类函数一览442
A4.1 构造函数:Mat::Mat442
A4.2 析构函数Mat::~Mat444
A4.3 Mat类成员函数444
主要参考文献447