《学习OpenCV 3 中文版》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)安德里安·凯勒(Adrian Kaehler),加里·布拉德斯基(Gary Bradski)著;阿丘科技,刘昌祥,吴雨培,王成龙,崔玉芳译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302504184
  • 页数:837 页
图书介绍:本书是融合基础与高级应用的OpenCV唯一权威参考。“让机器来看”是一个富有挑战但也颇为有趣的目标。简单和复杂的视觉应用,都离不开这本入门+高级应用必备参考。作者站在一线开发人员的角度,用“白话”方式介绍OpenCV和计算机视觉基础,演示如何用OpenCV和现有的自由代码为各种各样的机器进行编程,这种融合基础理论和实例的方式有助于读者迅速入门并渐入佳境,兴趣盎然地深入探索计算机视觉领域。

第1章 概述 1

什么是OpenCV 1

OpenCV怎么用 2

什么是计算机视觉 3

OpenCV的起源 6

OpenCV的结构 7

使用IPP来加速OpenCV 8

谁拥有OpenCV 9

下载和安装OpenCV 9

安装 9

从Git获取最新的OpenCV 12

更多的OpenCV文档 13

提供的文档 13

在线文档和维基资源 13

OpenCV贡献库 15

下载和编译Contributed模块 16

可移植性 16

小结 17

练习 17

第2章 OpenCV初探 19

头文件 19

资源 20

第一个程序:显示图片 21

第二个程序:视频 23

跳转 24

简单的变换 28

不那么简单的变换 30

从摄像头中读取 32

写入AVI文件 33

小结 34

练习 35

第3章 了解OpenCV的数据类型 37

基础知识 37

OpenCV的数据类型 37

基础类型概述 38

深入了解基础类型 39

辅助对象 46

工具函数 53

模板结构 60

小结 61

练习 61

第4章 图像和大型数组类型 63

动态可变的存储 63

cv::Mat类N维稠密数组 64

创建一个数组 65

独立获取数组元素 69

数组迭代器NAryMatIterator 72

通过块访问数组元素 74

矩阵表达式:代数和cv::Mat 75

饱和转换 77

数组还可以做很多事情 78

稀疏数据类cv::SparesMat 79

访问稀疏数组中的元素 79

稀疏数组中的特有函数 82

为大型数组准备的模板结构 83

小结 85

练习 86

第5章 矩阵操作 87

矩阵还可以做更多事情 87

cv::abs() 90

cv::add() 91

cv: :addWeighted() 92

cv::bitwise_and() 94

cv: :bitwise_not() 94

cv: :bitwise_or() 94

cv::bitwise_xor() 95

cv::calcCovarMatrix() 95

cv::cartToPolar() 97

cv::checkRange() 97

cv::compare() 98

cv::completeSymm() 99

cv::convertScaleAbs() 99

cv::countNonZero() 100

cv::Mat cv::cvarrToMat() 100

cv::dct() 101

cv::dft() 102

cv::cvtColor() 103

cv::determinant() 106

cv::divide() 106

cv::eigen() 106

cv::exp() 107

cv::extractImageCOI() 107

cv::flip() 108

cv::gemm() 108

cv::getConvertElem()和cv::getConvertScaleElem() 109

cv::idct() 110

cv::inRange() 110

cv::insertImageCOI() 111

cv::invert() 111

cv::log() 112

cv::LUT() 112

cv::Mahalanobis() 113

cv::max() 114

cv::mean() 115

cv::meanStdDev() 116

cv::merge() 116

cv::min() 116

cv::minMaxIdx() 117

cv::minMaxLoc() 118

cv: :mixChannels() 119

cv: :mulSpectrums() 120

cv::multiply() 121

cv::mulTransposed() 121

cv::norm() 122

cv::normalize() 123

cv::perspectiveTransform() 125

cv::phase() 125

cv::polarToCart() 126

cv::pow() 126

cv::randu() 127

cv::randn() 127

cv: :repeat() 129

cv::scaleAdd() 129

cv::setIdentity() 130

cv::solve() 130

cv::solveCubic() 131

cv::solvePoly() 132

cv::sort() 132

cv::sortIdx() 133

cv::split() 133

cv::sqrt() 134

cv::subtract() 135

cv::sum() 135

cv::trace() 135

cv::transform() 136

cv::transpose() 136

小结 137

练习 137

第6章 绘图和注释 139

绘图 139

艺术线条和填充多边形 140

字体和文字 146

小结 148

练习 148

第7章 OpenCV中的函数子 151

操作对象 151

主成分分析(cv::PCA) 151

奇异值分解cv::SVD 154

随机数发生器cv::RNG 157

小结 160

练习 160

第8章 图像、视频与数据文件 163

HighGUI模块:一个可移植的图形工具包 163

图像文件的处理 164

图像的载入与保存 165

关于codecs的一些注释 167

图片的编码与解码 168

视频的处理 169

使用cv::VideoCapture对象读取视频流 169

使用cv::VideoWriter对象写入视频 175

数据存储 176

cv::FileStorage的写入 177

使用cv:FileStorage读取文件 179

cv::FileNode 180

小结 183

练习 183

第9章 跨平台和Windows系统 187

基于Windows开发 187

HighGUI原生图形用户接口 188

通过Qt后端工作 199

综合OpenCV和全功能GUI工具包 209

小结 222

练习 222

第10章 滤波与卷积 225

概览 225

预备知识 225

滤波、核和卷积 225

边界外推和边界处理 227

阈值化操作 230

Otsu算法 233

自适应阈值 233

平滑 235

简单模糊和方框型滤波器 236

中值滤波器 238

高斯滤波器 239

双边滤波器 240

导数和梯度 242

索贝尔导数 242

Scharr滤波器 244

拉普拉斯变换 245

图像形态学 246

膨胀和腐蚀 247

通用形态学函数 250

开操作和闭操作 251

形态学梯度 254

顶帽和黑帽 256

自定义核 258

用任意线性滤波器做卷积 259

用cv::filter2D()进行卷积 259

通过cv::sepFilter2D使用可分核 260

生成卷积核 260

小结 262

练习 262

第11章 常见的图像变换 267

概览 267

拉伸、收缩、扭曲和旋转 267

均匀调整 268

图像金字塔 269

不均匀映射 273

仿射变换 274

透视变换 279

通用变换 282

极坐标映射 282

LogPolar 283

任意映射 287

图像修复 287

图像修复 288

去噪 289

直方图均衡化 292

cv::equalizeHist()用于对比均衡 294

小结 295

练习 295

第12章 图像分析 297

概览 297

离散傅里叶变换 297

cv::dft()离散傅里叶变换 298

cv:idft()用于离散傅里叶逆变换 300

cv::mulSpectrums()频谱乘法 300

使用傅里叶变换进行卷积 301

cv::dct()离散余弦变换 303

cv:idct()离散余弦逆变换 304

积分图 304

cv::integral()标准求和积分 306

cv::integral()平方求和积分 306

cv::integral()倾斜求和积分 307

Canny边缘检测 307

cv::Canny() 309

Hough变换 309

Hough线变换 309

Hough圆变换 313

距离变换 316

cv::distanceTransform()无标记距离变换 317

cv::distanceTransform()有标记距离变换 317

分割 318

漫水填充 318

分水岭算法 322

Grabcuts算法 323

Mean-Shift分割算法 325

小结 326

练习 326

第13章 直方图和模板 329

OpenCV中直方图的表示 331

cv:calcHist():从数据创建直方图 332

基本直方图操作 334

直方图归一化 334

直方图二值化 335

找出最显著的区间 335

比较两个直方图 337

直方图用法示例 339

一些复杂的直方图方法 342

EMD距离 342

反向投影 347

模板匹配 350

方差匹配方法(cv:TM_SQDIFF) 351

归一化方差匹配方法(cv::TM_SQDIFF_NORMED) 352

相关性匹配方法(cv:TM_CCORR) 352

归一化的互相关匹配方法(cv::TM_CCORR_NORMED) 352

相关系数匹配方法(cv::TM_CCOEFF) 352

归一化的相关系数匹配方法(cv::TM_CCOEFF_NORMED) 352

小结 355

练习 355

第14章 轮廓 359

轮廓查找 359

轮廓层次 360

绘制轮廓 364

轮廓实例 365

另一个轮廓实例 366

快速连通区域分析 368

深入分析轮廓 370

多边形逼近 370

几何及特性概括 372

几何学测试 377

匹配轮廓与图像 378

矩 378

再论矩 380

使用Hu矩进行匹配 383

利用形状场景方法比较轮廓 384

小结 388

练习 389

第15章 背景提取 391

背景提取概述 391

背景提取的缺点 392

场景建模 392

像素 393

帧间差分 396

平均背景法 397

累计均值,方差和协方差 403

更复杂的背景提取方法 410

结构 413

进行背景学习 414

存在移动的前景物体时进行背景学习 417

背景差分:检测前景物体 418

使用码书法的背景模型 419

关于码书法的其他想法 419

使用连通分量进行前景清理 420

小测试 423

两种背景方法的对比 425

OpenCV中的背景提取方法的封装 425

cv::BackgroundSubstractor基类 426

KB方法 427

Zivkovic方法 428

小结 431

练习 431

第16章 关键点和描述子 433

关键点和跟踪基础 433

角点检测 434

光流简介 437

Lucas-Kanade稀疏光流法 438

广义关键点和描述符 448

光流,跟踪和识别 450

OpenCV一般如何处理关键点和描述符 451

核心关键点检测方法 461

关键点过滤 497

匹配方法 499

结果显示 505

小结 508

练习 508

第17章 跟踪 511

跟踪中的概念 511

稠密光流 512

Farneback多项式扩展算法 513

DualTV-L1模型 515

简单光流算法 519

Mean-Shift算法和Camshift追踪 522

Mean-Shift算法 522

Camshift 526

运动模板 526

估计 533

卡尔曼滤波器 534

扩展卡尔曼滤波器简述 549

小结 551

练习 551

第18章 相机模型与标定 553

相机模型 554

射影几何基础 556

Rodrigues变换 558

透镜畸变 559

标定 562

旋转矩阵和平移向量 563

标定板 566

单应性 572

相机标定 576

矫正 587

矫正映射 587

使用cv::convertMaps()在不同表示方式之间转换矫正映射 588

使用cv::initUndistortRectifyMap()计算矫正映射 589

使用cv::remap()矫正图像 591

使用cv::undistort()进行矫正 591

使用cv:undistortPoints()进行稀疏矫正 591

与标定结合 592

小结 595

练习 596

第19章 投影与三维视觉 599

投影 600

仿射变换与透视变换 601

鸟瞰图变换实例 602

三维姿态估计 606

单摄像机姿态估计 607

立体成像 609

三角测量 610

对极几何 613

本征矩阵和基本矩阵 615

计算极线 624

立体校正 624

立体校正 628

立体匹配 638

立体校正、标定和对应的示例代码 650

来自三维重投影的深度映射 657

来自运动的结构 659

二维与三维直线拟合 659

小结 662

练习 662

第20章 机器学习基础 665

什么是机器学习 665

训练集和测试集 666

有监督学习和无监督学习 667

生成式模型和判别式模型 669

OpenCV机器学习算法 669

机器学习在视觉中的应用 671

变量的重要性 673

诊断机器学习中的问题 674

ML库中遗留的机器学习算法 678

K均值 679

马氏距离 684

小结 687

练习 687

第21章 StatModel:OpenCV中的基准学习模型 689

ML库中的常见例程 689

训练方法和cv::ml::TrainData的结构 691

预测 697

使用cv::StatModel的机器学习算法 698

朴素贝叶斯分类器 699

二叉决策树 703

Boosting方法 716

随机森林 721

期望最大化算法 725

K近邻算法 729

多层感知机 731

支持向量机 739

小结 749

练习 750

第22章 目标检测 753

基于树的目标检测技术 753

级联分类器 754

有监督学习和boosting理论 756

学习新目标 764

使用支持向量机的目标识别 772

Latent SVM用于目标识别 772

Bag of Words算法与语义分类 775

小结 780

练习 780

第23章 OpenCV的未来 783

过去与未来 783

OpenCV 3.x 784

我们上一次预测怎么样? 784

未来应用 785

目前GSoC的进展 787

社区贡献 788

OpenCV.org 789

一些关于AI的猜测 790

结语 793

附录A平面划分 795

附录B opencV_contrib模块概述 809

附录C标定图案 813

参考文献 819