图书介绍

OpenCV3编程入门PDF|Epub|txt|kindle电子书版本网盘下载

OpenCV3编程入门
  • 毛星云 著
  • 出版社:
  • ISBN:
  • 出版时间:2015
  • 标注页数:0页
  • 文件大小:61MB
  • 文件页数:465页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐