猜你喜欢
数字图像处理:基于OpenCV-Python

数字图像处理:基于OpenCV-Python

书籍作者:黄杉 ISBN:9787121459368
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:10180
创建日期:2024-04-20 发布日期:2024-04-20
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书按照数字图像处理的知识体系,循序渐进地对OpenCV-Python的基本功能进行全面、系统的介绍。全书共18章,分为OpenCV-Python的基本操作、图像处理的基本方法、图像处理的高级方法和计算机视觉四部分,详细介绍常用的OpenCV函数,并讲解例程代码。第一部分介绍OpenCV-Python的基本操作,包括第1~4章。第二部分介绍图像处理的基本方法,包括第5~9章。第三部分介绍图像处理的高级方法,包括第10~13章。第四部分介绍计算机视觉,包括第14~18章。

本书实例丰富、通俗易懂,适合数字图像处理方向的师生与相关技术人员使用,既可以作为入门数字图像处理的参考书,也可以作为OpenCV的入门教程。


作者简介

黄杉,就读于西安邮电大学通信工程学院,致力于图像处理、深度学习领域的学习与研究。

以网名youcans在 CSDN、B站、知乎开设“数字图像处理学习课”与“OpenCV例程”相关专栏,已发表400余篇文章,累计阅读量达 200万人次,其中100余篇文章入选“CSDN全站热榜”。


编辑推荐

(1)实例丰富,注释详细:本书介绍OpenCV例程,并编制例程索引,全面覆盖OpenCV的基本功能,系统介绍数字图像处理课程的内容。所有例程的实现方法简单、清晰,注释详细,便于读者理解和修改。

(2)循序渐进,编排合理:与同类图书不同,本书以数字图像处理知识体系为主线,而非按照OpenCV模块编排,从而更好地体现问题导向和需求导向。各章节内容相对独立,每个例程都是独立程序,不会相互调用,从而避免使用尚未讲到的函数或内容。

(3)函数手册,即学即用:本书介绍常用的OpenCV函数,并编制函数索引。与官方文档和同类书不同的是,本书对OpenCV函数进行了大量测试,着重讲解函数中参数的格式要求和注意事项,并结合例程帮助读者理解每个函数的特殊规定。

(4)阅读建议:与冈萨雷斯《数字图像处理》教材配套阅读,学习效果事半功倍。


前言

写作背景

写本书的初衷,源自作者学习数字图像处理的经历。

作者在专业创新教育课程中选择的教材是冈萨雷斯的《数字图像处理(第四版)》,学习的开始阶段非常困难。教材的开篇介绍绪论和数学工具,作者看得似懂非懂,似乎还不涉及编程;接下来的章节是灰度变换、空间滤波和频域滤波,涉及的内容丰富、方法繁多,作者试着编了几个程序就编不下去了。

于是,作者开始学习OpenCV,这是当下十分流行的计算机视觉软件库。作者找了几本学习教程,顺利运行了第一个例程。但是,接下来面对每个模块中几十个算法函数的讲解,作者又觉得“头大”了。而且,即便这些算法函数既有说明又有例程,作者还是不明所以,并不能真正理解和掌握。于是,对于OpenCV的学习也面临着半途而废的风险。

面对这种情况,作者回过头来,老老实实按照数字图像处理的知识体系,使用OpenCV对课程中的问题逐一编程实现。作者在CSDN网站开设了博客专栏“youcans的OpenCV例程”,把学习OpenCV数字图像处理的笔记整理为博客,迄今已经发布了260多篇文章。通过学习,作者深深体会到:①学习数字图像处理,一定离不开编程实践,否则连纸上谈兵都算不上;②学习OpenCV,要理解数字图像处理的知识体系,否则只是知其然,不知其所以然,开始很快乐,但是越往后越糊涂。

作者觉得数字图像处理与OpenCV就像左右手一样,是相辅相成、互为表里的。但是,在作者查阅的十几种数字图像处理教材和关于OpenCV的图书中,它们似乎分属两个门派,各自自成体系、泾渭分明,鲜有图书能将其融为一体,很难让像作者这样的“菜鸟”轻松入门、快速进阶。于是,作者决心自己写一本书,作为学习数字图像处理与OpenCV的桥梁。

本书适合学习数字图像处理课程的同学,不仅可以作为课程参考资料,而且可以让你轻松入门OpenCV;本书也适合OpenCV的初学者。本书比官方文档中的例程更加容易,会让初学者对数字图像处理的理解更加深入。对于有一定基础的读者,完全可以把本书作为OpenCV的常用函数手册,在需要时查阅。

主要内容

本书基于OpenCV-Python,介绍数字图像处理的基本方法和高级应用。全书共18章,分为四部分。

第一部分介绍OpenCV-Python的基本操作,包括第1~4章。

第1章介绍图像的基本操作,包括图像的读取、保存和显示方法等。

第2章介绍图像的数据格式,包括图像的创建、复制、裁剪、拼接、拆分、合并等基本方法。

第3章介绍彩色图像处理,包括图像的颜色空间转换、图像的伪彩色处理等。

第4章介绍绘图与鼠标交互,主要介绍其操作方法。

第二部分介绍图像处理的基本方法,包括第5~9章。

第5章介绍图像的算术运算,包括加、减、乘、除运算和位运算等。

第6章介绍图像的几何变换,包括图像的平移、图像的缩放和图像的旋转等。

第7章介绍图像的灰度变换,包括线性灰度变换和非线性灰度变换等。

第8章介绍图像的直方图处理,通过调控直方图来改善图像质量。

第9章介绍图像的阈值处理,包括OTSU阈值算法、多阈值处理算法等。

第三部分介绍图像处理的高级方法,包括第10~13章。

第10章介绍图像卷积与空间滤波,实现图像模糊和图像锐化。

第11章介绍傅里叶变换与频域滤波,设计更加丰富的滤波器。

第12章介绍形态学图像处理,包括基本操作、常用算法和典型应用。

第13章介绍图像变换、重建与复原,包括霍夫变换、雷登变换、图像重建和退化图像复原等。

第四部分介绍计算机视觉,包括第14~18章。

第14章介绍边缘检测与图像轮廓,包括边缘检测之梯度算子、LoG算子、DoG算子等。

第15章介绍图像分割,包括分水岭算法、图割分割算法和均值漂移算法等。

第16章介绍特征描述,包括特征描述之傅里叶描述符、特征描述之区域特征描述等。

第17章介绍特征检测与匹配,包括Harris、SIFT、SURF、FAST、ORB和MSER算法等。

第18章介绍机器学习,包括主成分分析、k均值聚类算法、k近邻算法、贝叶斯分类器、支持向量机和人工神经网络算法等。


目录

第一部分 OpenCV-Python的基本操作

第1章 图像的基本操作 3
1.1 图像的读取与保存 3
1.1.1 图像的读取 3
1.1.2 图像的保存 4
1.2 图像的显示 6
1.3 基于Matplotlib显示图像 7
1.4 视频文件的读取与保存 9
1.5 多帧图像的读取与保存 12
第2章 图像的数据格式 15
2.1 图像属性与数据类型 15
2.1.1 图像颜色分类 15
2.1.2 以Numpy数组表示数字图像 15
2.1.3 图像的数据类型 16
2.2 图像的创建与复制 17
2.3 图像的裁剪与拼接 19
2.4 图像通道的拆分与合并 21
2.5 获取与修改像素值 23
2.6 快速LUT替换像素值 25
第3章 彩色图像处理 29
3.1 图像的颜色空间转换 29
3.1.1 图像的颜色空间 29
3.1.2 图像的颜色空间转换 29
3.2 灰度图像的伪彩色处理 31
3.3 多模态数据合成的伪彩色图像 33
3.4 图像的色彩风格滤镜 35
3.5 调节图像的色彩平衡 37
第4章 绘图与鼠标交互 40
4.1 OpenCV绘图函数的参数 40
4.2 绘制直线与线段 41
4.3 绘制垂直矩形 43
4.4 绘制旋转矩形 45
4.5 绘制圆形和椭圆 47
4.5.1 绘制圆形 47
4.5.2 绘制椭圆和椭圆弧 49
4.6 绘制多段线和多边形 53
4.7 图像上添加文字 56
4.8 鼠标框选矩形区域 57
4.9 鼠标交互操作 59

第二部分 图像处理的基本方法

第5章 图像的算术运算 65
5.1 图像的加法与减法运算 65
5.2 使用掩模图像控制处理区域 67
5.3 图像的加权加法运算 69
5.4 图像的乘法与除法运算 71
5.5 图像的位运算 73
5.6 图像的积分运算 77
5.7 图像的归一化处理 80
第6章 图像的几何变换 81
6.1 图像的平移 81
6.2 图像的缩放 83
6.3 图像的旋转 85
6.4 图像的翻转 88
6.5 图像的斜切 89
6.6 图像的投影变换 91
6.7 图像的重映射 94
第7章 图像的灰度变换 99
7.1 图像反转变换 99
7.2 线性灰度变换 100
7.3 非线性灰度变换 105
7.3.1 对数变换 105
7.3.2 幂律变换 105
7.4 分段线性变换之对比度拉伸 108
7.5 分段线性变换之灰度级分层 109
7.6 灰度变换之比特平面 110
7.7 基于灰度变换调整图像色阶 112
第8章 图像的直方图处理 116
8.1 图像的灰度直方图 116
8.2 图像的直方图均衡化 118
8.3 图像的直方图匹配 120
8.4 基于局部直方图统计量的图像增强 124
8.5 限制对比度自适应直方图均衡化 126
第9章 图像的阈值处理 129
9.1 固定阈值处理 129
9.2 OTSU阈值算法 133
9.3 多阈值处理算法 134
9.4 自适应阈值处理 137
9.5 移动平均阈值处理 138
9.6 HSV颜色空间的阈值分割 140
9.6.1 HSV颜色空间 140
9.6.2 区间阈值处理 141

第三部分 图像处理的高级方法

第10章 图像卷积与空间滤波 149
10.1 相关运算与卷积运算 149
10.1.1 相关运算 149
10.1.2 可分离卷积核 150
10.1.3 边界扩充 151
10.2 空间滤波之盒式滤波器 153
10.3 空间滤波之高斯滤波器 155
10.4 空间滤波之统计排序滤波器 157
10.4.1 中值滤波器 157
10.4.2 最大值滤波器 157
10.4.3 最小值滤波器 158
10.4.4 中点滤波器 158
10.4.5 修正阿尔法均值滤波器 158
10.5 空间滤波之自适应滤波器 161
10.5.1 自适应局部降噪滤波器 161
10.5.2 自适应中值滤波器 161
10.6 空间滤波之双边滤波器 164
10.7 空间滤波之钝化掩蔽 166
10.8 空间滤波之Laplacian算子 168
10.9 空间滤波之Sobel算子与Scharr算子 169
10.9.1 Sobel算子 169
10.9.2 Scharr算子 170
10.10 图像金字塔 173
10.10.1 高斯金字塔 173
10.10.2 拉普拉斯金字塔 174
第11章 傅里叶变换与频域滤波 179
11.1 图像的傅里叶变换 179
11.1.1 用OpenCV实现傅里叶变换 180
11.1.2 用Numpy实现傅里叶变换 181
11.1.3 频谱中心化 181
11.2 快速傅里叶变换 185
11.3 频域滤波的基本步骤 187
11.4 频域滤波之低通滤波 189
11.4.1 低通滤波器的传递函数 189
11.4.2 频域滤波的详细步骤 192
11.5 频域滤波之高通滤波 195
11.6 频域滤波之Laplacian算子 198
11.6.1 Laplacian算子 198
11.6.2 梯度算子的传递函数 198
11.7 频域滤波之选择性滤波器 202
11.7.1 带阻滤波器和带通滤波器 203
11.7.2 陷波滤波器 203
第12章 形态学图像处理 209
12.1 腐蚀运算和膨胀运算 209
12.1.1 腐蚀和膨胀 209
12.1.2 形态学处理的结构元 210
12.2 形态学运算函数 212
12.2.1 形态学高级运算 213
12.2.2 形态学处理函数 214
12.3 灰度形态学运算 218
12.3.1 灰度腐蚀与灰度膨胀 218
12.3.2 灰度开运算与灰度闭运算 219
12.3.3 灰度顶帽算子和灰度底帽算子 219
12.4 形态学算法之边界提取 225
12.5 形态学算法之直线提取 226
12.6 形态学算法之线条细化 228
12.7 形态学重建之边界清除 230
12.8 形态学重建之孔洞填充 232
12.8.1 孔洞填充算法 232
12.8.2 泛洪填充算法 233
12.9 形态学重建之骨架提取 237
12.10 形态学重建之粒径分离 238
12.11 基于形态学的粒度测定 240
12.12 形态学算法之边缘检测和角点检测 242
第13章 图像变换、重建与复原 245
13.1 直角坐标与极坐标变换 245
13.2 霍夫变换直线检测 247
13.3 霍夫变换圆检测 250
13.4 雷登变换与反投影图像重建 252
13.4.1 投影和雷登变换 252
13.4.2 反投影和图像重建 253
13.5 雷登变换滤波反投影图像重建 257
13.6 退化图像复原之逆滤波 260
13.7 退化图像复原之维纳滤波 263
13.8 退化图像复原之最小二乘法滤波 266

第四部分 计算机视觉

第14章 边缘检测与图像轮廓 273
14.1 边缘检测之梯度算子 273
14.2 边缘检测之LoG算子 275
14.3 边缘检测之DoG算子 278
14.4 边缘检测之Canny算子 280
14.5 边缘连接 282
14.6 轮廓的查找与绘制 284
14.6.1 查找图像轮廓 284
14.6.2 绘制图像轮廓 285
14.7 轮廓的基本参数 288
14.7.1 轮廓的面积 288
14.7.2 轮廓的周长 288
14.7.3 轮廓的质心 289
14.7.4 轮廓的等效直径 289
14.7.5 极端点的位置 289
14.8 轮廓的形状特征 292
14.8.1 轮廓的垂直矩形边界框 292
14.8.2 轮廓的最小矩形边界框 292
14.8.3 轮廓的最小外接圆 293
14.8.4 轮廓的最小外接三角形 293
14.8.5 轮廓的近似多边形 294
14.8.6 轮廓的拟合椭圆 294
14.8.7 轮廓的拟合直线 294
14.8.8 轮廓的凸壳 295
14.9 轮廓的属性 298
14.9.1 轮廓的宽高比 298
14.9.2 轮廓的面积比 299
14.9.3 轮廓的坚实度 299
14.9.4 轮廓的方向 299
14.9.5 轮廓的掩模 299
14.9.6 轮廓的最大值、最小值及其位置 300
14.9.7 灰度均值和颜色均值 300
14.9.8 检测轮廓的内部/外部 300
14.10 矩不变量与形状相似性 303
14.10.1 图像的矩不变量 303
14.10.2 基于矩不变量的形状相似性 304
第15章 图像分割 308
15.1 区域生长与分离 308
15.1.1 区域生长 308
15.1.2 区域分离与聚合 308
15.2 超像素区域分割 311
15.2.1 简单线性迭代聚类 311
15.2.2 能量驱动采样 311
15.2.3 线性谱聚类 312
15.2.4 OpenCV超像素分割函数 312
15.3 分水岭算法 317
15.4 图割分割算法 322
15.4.1 GraphCut图割算法 322
15.4.2 GrabCut图割算法 322
15.4.3 OpenCV中的图割算法 323
15.5 均值漂移算法 328
15.6 运动图像分割 331
15.6.1 帧间差分法 331
15.6.2 背景差分法 331
15.6.3 密集光流法 332
第16章 特征描述 340
16.1 特征描述之弗里曼链码 340
16.2 特征描述之傅里叶描述符 344
16.3 特征描述之傅里叶频谱分析 347
16.4 特征描述之区域特征描述 350
16.5 特征描述之灰度共生矩阵 353
16.6 特征描述之LBP描述符 356
16.6.1 基本LBP特征描述符 356
16.6.2 扩展LBP特征描述符 356
16.6.3 LBP特征统计直方图 357
16.7 特征描述之HOG描述符 363
16.8 特征描述之BRIEF描述符 367
16.9 特征描述之FREAK描述符 371
第17章 特征检测与匹配 374
17.1 角点检测之Harris算法 374
17.1.1 Harris角点检测算法 374
17.1.2 Shi-Tomas角点检测算法 375
17.1.3 OpenCV角点检测算法 375
17.2 角点检测之亚像素精确定位 377
17.3 特征检测之SIFT算法 380
17.3.1 SIFT算法的原理 380
17.3.2 OpenCV的SIFT类 381
17.4 特征检测之SURF算法 384
17.4.1 SURF算法原理 384
17.4.2 OpenCV的SURF类 385
17.5 特征检测之FAST算法 387
17.6 特征检测之ORB算法 390
17.6.1 基于尺度空间的FAST关键点检测 390
17.6.2 基于点方向的BRIEF特征描述符 390
17.7 特征检测之MSER算法 392
17.8 特征匹配之暴力匹配 396
17.9 特征匹配之最近邻匹配 399
17.9.1 最近邻匹配 399
17.9.2 单应性映射变换 400
第18章 机器学习 404
18.1 OpenCV机器学习模块 404
18.2 主成分分析 406
18.2.1 主成分分析基本方法 406
18.2.2 OpenCV的PCA类 406
18.3 k均值聚类算法 409
18.4 k近邻算法 413
18.5 贝叶斯分类器 417
18.6 支持向量机 420
18.6.1 支持向量机算法 420
18.6.2 OpenCV的SVM类 421
18.6.3 OpenCV的SVMSGD类 422
18.7 人工神经网络算法 426
18.7.1 神经网络算法介绍 426
18.7.2 OpenCV的ANN_MLP神经网络模型 427
参考文献 436

短评

书收到包装严实完好无损,质量不错,字迹清晰发货物流给力

2023-09-19 16:48:26

不错,质量很好,价格实惠

2023-09-03 07:47:41

没有问题,内容也很好。

2023-08-19 13:33:11

产品特色