OpenCV轻松入门:面向Python
全新正版 急速发货
¥
66
6.7折
¥
99
全新
库存5件
作者李立宗
出版社电子工业出版社
ISBN9787121362903
出版时间2019-05
装帧平装
开本16开
定价99元
货号27876020
上书时间2024-11-21
商品详情
- 品相描述:全新
- 商品描述
-
前言
前言
目前,计算机视觉技术的应用越来越广泛。伴随着硬件设备的不断升级,构造复杂的计算机视觉应用变得越来越容易了。有非常多的软件工具和库可以用来构造计算机视觉应用,而面向Python的OpenCV(OpenCV for Python)就是一个很好的选择,本书正是基于面向Python的OpenCV来讲解的。
本书的主要内容和特点
OpenCV本身是一个“黑盒”,它为我们提供了接口(参数、返回值)。我们只需要掌握接口的正确使用方法,就可以在完全不了解其内部工作原理(算法)的情况下,方便地进行各种复杂的图像处理。在这一点上,它和Photoshop等工具是相似的,只要掌握了正确的使用方法,就能够得到正确的处理结果。它们都尝试让我们专注于图像处理本身,而不用去考虑算法实现的细节。
在学习Photoshop时,我们学习的是如何使用它的功能,而不需要系统地学习每个功能所采用的算法原理。但是很明显,我们在使用OpenCV进行图像处理时,是不能完全忽略算法实现的,否则是不可能用好OpenCV的,更不能设计出好的计算机视觉应用系统。
从上述角度讲,我们可以从两个角度学习OpenCV:
? 将OpenCV作为“白盒”学习:深入学习OpenCV每个函数所使用算法的基本原理、每个函数的具体实现细节,进一步加深对图像处理的理解。
? 将OpenCV作为“黑盒”学习:仅仅将OpenCV作为一个工具来使用,学习的是每个函数内参数的含义和使用方式,学习的目的是更好地使用OpenCV函数。
本书尽量帮助读者在“黑盒”学习和“白盒”学习之间取得平衡。在介绍具体的算法原理时,尽量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用过多复杂抽象的公式。希望这样的安排能够帮助读者更好地掌握计算机视觉的相关知识,更透彻地理解计算机视觉的相关算法。在介绍OpenCV函数的使用方法时,我们为读者提供了大量的程序示例。而且在介绍函数对图像的处理前,往往先展示函数对数值、数组的处理,方便读者从数值的角度观察和理解函数的处理过程和结果。希望这些例题能够帮助读者更好地理解OpenCV处理图像的方式,快速地掌握OpenCV的使用方法,更好地使用OpenCV进行图像处理。需要说明的一点是,本书为黑白印刷,无法很好地呈现某些程序的运行效果,请读者自行运行程序并观察结果。
在内容的设置上,本书以OpenCV官方文档的知识脉络为主线,在此基础上对细节进行补充和说明。
为了方便读者学习,本书力求将每一个知识点作为一个独立的点来介绍和说明。在介绍知识点时,尽量采用从零开始的方式,以避免读者在学习过程中需要不断地离开当前知识点,去查阅相关背景资料。但是由于篇幅有限,如果某一函数已经在前面介绍过,在后面用到该函数时,就没有对其进行重复介绍,而是给出介绍该函数语法的章节位置,方便读者参考阅读。
本书适合计算机视觉领域的初学者阅读,包括在校学生、教师、专业技术人员、图像处理爱好者。
感谢
首先,我要感谢我的老师高铁杠教授,感谢高老师带我走进了计算机视觉这一领域,让我对计算机视觉产生了浓厚的兴趣,更要感谢高老师一直以来对我的关心和帮助。
感谢本书的策划编辑符隆美老师,符老师的专业精神给我留下了非常深刻的印象。感谢本书的责任编辑王中英和许艳老师,她们对本书内容做出了细致修改,不仅修改了很多不通顺的语句和错别字,还对书中存在的技术问题进行了确认和修正。还要感谢为本书出版而付出辛苦工作的电子工业出版社的其他老师们。
感谢OpenCV开源库的所有贡献者。
感谢合作单位天津拨云咨询服务有限公司为本书提供的支持。
感谢我的家人,感谢你们一直以来对我的理解、支持和付出。
互动方式
限于本人水平,书中肯定存在很多不足之处,欢迎大家提出问题和建议,也非常欢迎大家和我交流关于OpenCV的各种问题,我的邮箱是lilizong@gmail.com。
李立宗
2019年3月
导语摘要
本书基于面向 Python 的 OpenCV(OpenCV for Python),介绍了图像处理的方方面面。本书以 OpenCV 官方文档的知识脉络为主线,并对细节进行补充和说明。 书中不仅介绍了 OpenCV 函数的使用方法,还介绍了函数实现的算法原理。在介绍 OpenCV 函数的 使用方法时,提供了大量的程序示例。而且在介绍函数对图像的处理前,往往先展示函数对数值、数组 的处理,方便读者从数值的角度观察和理解函数的处理过程和结果。在介绍具体的算法原理时,本书尽 量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用过多复杂抽象的公式。 本书适合计算机视觉领域的初学者阅读,包括在校学生、教师、专业技术人员、图像处理爱好者。
作者简介
李立宗,南开大学硕士,天津职业技术师范大学副教授,从事计算机视觉领域的教学和科研工作。拥有发明专利一项、软件著作权十余项,公开发表论文十余篇,主编《OpenCV编程案例详解》等多部图书。在网易云课堂主讲的《OpenCV图穷匕见》等多门课程被评为精品课。
目录
第1章 OPENCV入门1
1.1 如何使用1
1.2 图像处理基本操作3
1.2.1 读取图像3
1.2.2 显示图像5
1.2.3 保存图像9
1.3 OpenCV贡献库10
第2章 图像处理基础11
2.1 图像的基本表示方法11
2.2 像素处理15
2.3 使用numpy.array访问像素23
2.4 感兴趣区域(ROI)29
2.5 通道操作32
2.5.1 通道拆分32
2.5.2 通道合并34
2.6 获取图像属性36
第3章 图像运算37
3.1 图像加法运算37
3.1.1 加号运算符37
3.1.2 cv2.add()函数38
3.2 图像加权和40
3.3 按位逻辑运算43
3.3.1 按位与运算43
3.3.2 按位或运算46
3.3.3 按位非运算47
3.3.4 按位异或运算48
3.4 掩模49
3.5 图像与数值的运算52
3.6 位平面分解53
3.7 图像加密和解密59
3.8 数字水印63
3.8.1 原理64
3.8.2 实现方法66
3.8.3 例题73
3.9 脸部打码及解码74
第4章 色彩空间类型转换77
4.1 色彩空间基础77
4.1.1 GRAY色彩空间77
4.1.2 XYZ色彩空间78
4.1.3 YCrCb色彩空间78
4.1.4 HSV色彩空间79
4.1.5 HLS色彩空间80
4.1.6 CIEL*a*b*色彩空间80
4.1.7 CIEL*u*v*色彩空间81
4.1.8 Bayer色彩空间82
4.2 类型转换函数82
4.3 类型转换实例88
4.3.1 通过数组观察转换效果88
4.3.2 图像处理实例92
4.4 HSV色彩空间讨论93
4.4.1 基础知识93
4.4.2 获取指定颜色95
4.4.3 标记指定颜色96
4.4.4 标记肤色100
4.4.5 实现艺术效果101
4.5 alpha通道102
第5章 几何变换106
5.1 缩放106
5.2 翻转110
5.3 仿射111
5.3.1 平移112
5.3.2 旋转113
5.3.3 更复杂的仿射变换114
5.4 透视115
5.5 重映射117
5.5.1 映射参数的理解117
5.5.2 复制119
5.5.3 绕x轴翻转121
5.5.4 绕y轴翻转122
5.5.5 绕x轴、y轴翻转124
5.5.6 x轴、y轴互换126
5.5.7 图像缩放128
第6章 阈值处理130
6.1 threshold函数130
6.1.1 二值化阈值处理(cv2.THRESH_BINARY)131
6.1.2 反二值化阈值处理(cv2.THRESH_BINARY_INV)133
6.1.3 截断阈值化处理(cv2.THRESH_TRUNC)135
6.1.4 超阈值零处理(cv2.THRESH_TOZERO_INV)136
6.1.5 低阈值零处理(cv2.THRESH_TOZERO)138
6.2 自适应阈值处理139
6.3 Otsu处理141
第7章 图像平滑处理144
7.1 均值滤波146
7.1.1 基本原理146
7.1.2 函数语法150
7.1.3 程序示例150
7.2 方框滤波152
7.2.1 基本原理152
7.2.2 函数语法153
7.2.3 程序示例154
7.3 高斯滤波156
7.3.1 基本原理156
7.3.2 函数语法158
7.3.3 程序示例159
7.4 中值滤波159
7.4.1 基本原理160
7.4.2 函数语法161
7.4.3 程序示例161
7.5 双边滤波162
7.5.1 基本原理162
7.5.2 函数语法164
7.5.3 程序示例164
7.6 2D卷积166
第8章 形态学操作168
8.1 腐蚀168
8.2 膨胀173
8.3 通用形态学函数178
8.4 开运算179
8.5 闭运算180
8.6 形态学梯度运算182
8.7 礼帽运算183
8.8 黑帽运算185
8.9 核函数186
第9章 图像梯度189
9.1 Sobel理论基础189
9.2 Sobel算子及函数使用191
9.2.1 参数ddepth192
9.2.2 方向195
9.2.3 实例196
9.3 Scharr算子及函数使用200
9.4 Sobel算子和Scharr算子的比较204
9.5 Laplacian算子及函数使用206
9.6 算子总结208
第10章 CANNY边缘检测209
10.1 Canny边缘检测基础209
10.2 Canny函数及使用213
第11章 图像金字塔215
11.1 理论基础215
11.2 pyrDown函数及使用217
11.3 pyrUp函数及使用219
11.4 采样可逆性的研究220
11.5 拉普拉斯金字塔223
11.5.1 定义223
11.5.2 应用225
第12章 图像轮廓229
12.1 查找并绘制轮廓229
12.1.1 查找图像轮廓:findContours函数229
12.1.2 绘制图像轮廓:drawContours函数237
12.1.3 轮廓实例238
12.2 矩特征240
12.2.1 矩的计算:moments函数241
12.2.2 计算轮廓的面积:contourArea函数243
12.2.3 计算轮廓的长度:arcLength函数246
12.3 Hu矩248
12.3.1 Hu矩函数248
12.3.2 形状匹配252
12.4 轮廓拟合254
12.4.1 矩形包围框254
12.4.2 小包围矩形框257
12.4.3 小包围圆形259
12.4.4 拟合椭圆260
12.4.5 拟合直线261
12.4.6 小外包三角形262
12.4.7 逼近多边形263
12.5 凸包266
12.5.1 获取凸包267
12.5.2 凸缺陷268
12.5.3 几何学测试270
12.6 利用形状场景算法比较轮廓275
12.6.1 计算形状场景距离275
12.6.2 计算Hausdorff距离278
12.7 轮廓的特征值280
12.7.1 宽高比280
12.7.2 Extent281
12.7.3 Solidity282
12.7.4 等效直径(Equivalent Diameter)283
12.7.5 方向284
12.7.6 掩模和像素点286
12.7.7 值和小值及它们的位置291
12.7.8 平均颜色及平均灰度293
12.7.9 极点294
第13章 直方图处理297
13.1 直方图的含义297
13.2 绘制直方图301
13.2.1 使用Numpy绘制直方图301
13.2.2 使用OpenCV绘制直方图302
13.2.3 使用掩模绘制直方图307
13.3 直方图均衡化312
13.3.1 直方图均衡化原理313
13.3.2 直方图均衡化处理317
13.4 pyplot模块介绍319
13.4.1 subplot函数319
13.4.2 imshow函数320
第14章 傅里叶变换324
14.1 理论基础324
14.2 Numpy实现傅里叶变换328
14.2.1 实现傅里叶变换329
14.2.2 实现逆傅里叶变换330
14.2.3 高通滤波示例331
14.3 OpenCV实现傅里叶变换333
14.3.1 实现傅里叶变换333
14.3.2 实现逆傅里叶变换335
14.3.3 低通滤波示例336
第15章 模板匹配339
15.1 模板匹配基础339
15.2 多模板匹配345
第16章 霍夫变换351
16.1 霍夫直线变换351
16.1.1 霍夫变换原理351
16.1.2 HoughLines函数357
16.1.3 HoughLinesP函数359
16.2 霍夫圆环变换361
第17章 图像分割与提取364
17.1 用分水岭算法实现图像分割与提取364
17.1.1 算法原理364
17.1.2 相关函数介绍366
17.1.3 分水岭算法图像分割实例375
17.2 交互式前景提取376
第18章 视频处理383
18.1 VideoCapture类383
18.1.1 类函数介绍383
18.1.2 捕获摄像头视频387
18.1.3 播放视频文件388
18.2 VideoWriter类389
18.2.1 类函数介绍389
18.2.2 保存视频391
18.3 视频操作基础392
第19章 绘图及交互393
19.1 绘画基础393
19.1.1 绘制直线394
19.1.2 绘制矩形394
19.1.3 绘制圆形395
19.1.4 绘制椭圆397
19.1.5 绘制多边形398
19.1.6 在图形上绘制文字400
19.2 鼠标交互402
19.2.1 简单示例404
19.2.2 进阶示例405
19.3 滚动条407
19.3.1 用滚动条实现调色板408
19.3.2 用滚动条控制阈值处理参数409
19.3.3 用滚动条作为开关410
第20章 K近邻算法412
20.1 理论基础412
20.2 计算415
20.2.1 归一化415
20.2.2 距离计算416
20.2 手写数字识别的原理417
20.3 自定义函数手写数字识别421
20.4 K近邻模块的基本使用427
20.5 K近邻手写数字识别429
第21章 支持向量机431
21.1 理论基础431
21.2 SVM案例介绍434
第22章 K均值聚类439
22.1 理论基础439
22.1.1 分豆子439
22.1.2 K均值聚类的基本步骤441
22.2 K均值聚类模块441
22.3 简单示例442
第23章 人脸识别448
23.1 人脸检测448
23.1.1 基本原理448
23.1.2 级联分类器的使用451
23.1.3 函数介绍452
23.1.4 案例介绍453
23.2 LBPH人脸识别454
23.2.1 基本原理454
23.2.2 函数介绍456
23.2.3 案例介绍457
23.3 EigenFaces人脸识别458
23.3.1 基本原理458
23.3.2 函数介绍459
23.3.3 案例介绍460
23.4 Fisherfaces人脸识别461
23.4.1 基本原理461
23.4.2 函数介绍463
23.4.3 案例介绍464
23.5 人脸数据库465
参与文献467
附录A 范例470
内容摘要
本书基于面向 Python 的 OpenCV(OpenCV for Python),介绍了图像处理的方方面面。本书以 OpenCV 官方文档的知识脉络为主线,并对细节进行补充和说明。 书中不仅介绍了 OpenCV 函数的使用方法,还介绍了函数实现的算法原理。在介绍 OpenCV 函数的 使用方法时,提供了大量的程序示例。而且在介绍函数对图像的处理前,往往先展示函数对数值、数组 的处理,方便读者从数值的角度观察和理解函数的处理过程和结果。在介绍具体的算法原理时,本书尽 量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用过多复杂抽象的公式。 本书适合计算机视觉领域的初学者阅读,包括在校学生、教师、专业技术人员、图像处理爱好者。
主编推荐
李立宗,南开大学硕士,天津职业技术师范大学副教授,从事计算机视觉领域的教学和科研工作。拥有发明专利一项、软件著作权十余项,公开发表论文十余篇,主编《OpenCV编程案例详解》等多部图书。在网易云课堂主讲的《OpenCV图穷匕见》等多门课程被评为精品课。
媒体评论
本书采用Python语言,以案例的形式介绍了OpenCV中的常用算法及其使用方法。Python是一种高效的开发语言,使用Python调用OpenCV中的算法,可以快速地实现计算机视觉应用。
于仕琪 OpenCV开源库在国内的早期推广者,“OpenCV系列”图书译者、作者,OpenCV中文站站长
本书以通俗的语言,结合贴近生活的实例,形象地介绍了面向Python的OpenCV中各个函数的基本原理和使用方法。希望这本书能够为大家带来有益的启发,帮助大家更好、更快、更全面地掌握面向Python的OpenCV,在计算机视觉领域有所作为。
高铁杠 南开大学教授、博士生导师
Python是一门跨平台、开源、免费的解释型高级动态编译语言,它使得各领域的工程师、科研人员、策划人员甚至管理人员能够快速实现和验证自己的思路、创意甚至推测。在有些语言中需要编写大量代码才能实现的功能,在Python中直接调用内置函数或者标准库方法即可实现,大幅简化了代码的编写和维护。开发者仅需要把主要精力放在业务逻辑的设计和实现上,Python会自动在开发速度和运行效率之间做出平衡,其精妙之处令人击节赞叹。
董付国 《Python程序设计》一书作者
计算机视觉是一个崭新而又充满希望的研究领域,而OpenCV是辅助计算机视觉的出色开源工具。OpenCV库旨在提供易于使用的计算机视觉接口,它包含各个领域的500多个函数,能够帮助人们方便、快速、高效地构建视觉应用。不仅如此,它还提供了一个完备的、具有通用性的机器学习模块。可想而知,将Python和OpenCV结合,将产生巨大的威力。
本书比较系统地介绍了面向Python的OpenCV视觉库的使用,内容通俗易懂、生动有趣,案例丰富,实用性强。相信通过学习这本书,大家能够在计算机视觉领域快速入门,熟练地使用面向Python的OpenCV解决实际问题。
毕磊 &
— 没有更多了 —
以下为对购买帮助不大的评价