批量上传,套装书可能不全,下单前咨询在线客服!有特殊要求,下单前请咨询客服!
¥ 25.76 4.4折 ¥ 59 全新
库存36件
作者姚利民
出版社清华大学出版社
ISBN9787302656692
出版时间2024-03
装帧平装
开本16开
定价59元
货号29702974
上书时间2024-11-04
OpenCV是一个跨平台的计算机视觉和机器学习软件库,它实现了图像处理和计算机视觉方面的很多通用算法,是计算机视觉开发人员必须掌握的技术。
笔者的拙作《Java OpenCV高效入门》对OpenCV中各种算法全面系统地进行了介绍,并给出了100多个示例程序,但是,这些示例相对简单,只能实现较为单一的功能。与此不同的是,本书采用项目主导的方式,每个项目都需要综合运用多种算法来完成一项较为复杂的任务。
爱因斯坦曾经说过:“兴趣是最好的老师。”笔者最初对OpenCV的研究也是兴趣使然,因此,本书选择的大多是“有趣而实用”的项目,例如魔方图案识别、答题卡评分、围棋盘面识别、车牌定位与识别、银行卡卡号识别等。这些项目的实现实际上是将它们拆解成若干功能模块后用OpenCV算法各个击破的过程。当然,各个算法之间的衔接也很重要,因为OpenCV涉及众多数据结构,A算法的输出往往并不能直接用于B算法的输入,而是需要经过某种转换。这种转换对初学者来讲是一个不小的难点,书中会有相应的说明。
为了便于阅读和理解,本书采用模块化编程,一个功能模块对应一个或多个函数。函数尽量具备通用性,不少函数甚至可以原封不动地搬到其他项目中直接调用。所有这些考虑只有一个目的:帮助读者加深对OpenCV的理解,早日进入OpenCV项目开发的自由王国。
本书主要内容
本书共15章,主要内容如下:
第1章介绍OpenCV的基础知识及Java OpenCV开发环境的搭建。
第2章介绍魔方图案识别中涉及的主要算法及实现步骤。
第3章介绍答题卡评分中涉及的主要算法及实现步骤。
第4章介绍围棋盘面识别中涉及的主要算法及实现步骤。
第5章介绍停车场车位检测中涉及的主要算法及实现步骤。
第6章介绍车道线检测中涉及的主要算法及实现步骤。
第7章介绍汉字识别中各关键步骤的原理及实现步骤。
第8章介绍Tess4J这一OCR工具的安装、配置及如何利用该工具对英文和中文文字进行识别。
第9章介绍车牌定位与识别的主要算法及实现步骤。
第10章介绍硬币识别的主要算法及实现步骤。
第11章介绍零件检测的主要算法及实现步骤。
第12章介绍银行卡卡号识别的主要算法及实现步骤。
第13章介绍全景拼接的原理、涉及的主要算法及实现步骤。
第14章介绍二维码的基础知识、OpenCV中相关函数及具体识别过程。
第15章介绍Deeplearning4J这一深度学习框架,以及如何用机器学习算法实现手写文字的识别。
各章均附有完整的代码供读者学习参考,可扫描目录上方二维码下载。
阅读建议
本书与《Java OpenCV?高效入门》配套学习效果更佳。对于初学者而言,先阅读《Java OpenCV高效入门》的内容将大有裨益。
本书第1章总体介绍及开发环境搭建,对这部分比较熟悉的读者可以跳过。后面的章节基本上相互独立,但是最佳阅读顺序仍然是按顺序阅读,原因有二:一是某些案例中有个别步骤是相同的,有关原理在前面章节介绍过之后就不再重复了;二是某些案例要用到之前章节中安装的库,例如第9章的车牌定位与识别就需要用到第8章介绍的Tess4J库,因此,按顺序阅读的效率是最高的。当然,只对某些案例感兴趣的读者也可直接阅读相关章节,当遇到问题时再翻阅前面章节或相关书籍。
致谢
感谢我的家人,感谢你们一直以来对我的理解和支持!
本书的写作得到了清华大学出版社赵佳霓编辑的大力帮助,在此深表感谢!
由于本书涉及内容广泛,加上笔者水平有限,因此难免存在疏漏之处,还请各位读者不吝批评指正。
姚利民
2024年1月
II
III
本书是与《Java OpenCV高效入门》配套的案例集。全书共15章,第1章是OpenCV简介及开发环境的搭建,第2~15章是14个实用项目(专题),包括魔方图案识别、答题卡评分、围棋盘面识别、停车场车位检测、车道线检测、汉字识别、OCR文字识别、车牌定位与识别、硬币识别、零件检测、银行卡卡号识别、全景拼接、二维码识别、机器学习等内容。书中的项目均有相当的难度,需要综合运用OpenCV的各种算法实现。
本书面向的读者是包括高校学生在内的各类OpenCV学习者、研究计算机视觉的业余爱好者及需要快速上手的专业人员。
姚利民,毕业于东南大学,长期在外资企业从事管理工作,同时致力于AI及图像处理的研究工作。2012年赴某知名跨国企业全球总部工作,回国后自主创业。目前主要从事AI研究,专攻棋类博弈和计算机视觉处理。有感于相关资源的匮乏,主讲基于Java的OpenCV课程,短期内便获大量关注,著有《Java OpenCV高效入门》。
本书源码
第1章 OpenCV开发环境搭建 1
1.1 OpenCV简介 1
1.2 OpenCV的主要模块 1
1.3 OpenCV开发环境搭建 2
1.3.1 Java开发环境搭建 2
1.3.2 OpenCV的下载和安装 3
1.3.3 OpenCV的配置 3
1.3.4 测试程序 7
第2章 魔方图案识别 10
2.1 概述 10
2.1.1 案例描述 10
2.1.2 案例分析 12
2.2 总体设计 13
2.2.1 系统需求 13
2.2.2 总体思路及流程 13
2.3 魔方图案识别的实现 13
2.3.1 Canny边缘检测 14
2.3.2 霍夫线检测 15
2.3.3 确定顶点 16
2.3.4 透视变换 18
2.3.5 颜色识别 20
2.3.6 颜色值分类 21
2.3.7 颜色匹配 22
2.4 完整代码 22
第3章 答题卡评分 30
3.1 概述 30
3.1.1 案例描述 30
3.1.2 案例分析 31
3.2 总体设计 33
3.2.1 系统需求 33
3.2.2 总体思路及流程 33
3.3 答题卡自动评分的实现 33
3.3.1 二值化 33
3.3.2 提取轮廓 35
3.3.3 汉字过滤 38
3.3.4 定位块位置 38
3.3.5 透视变换 39
3.3.6 答案的判断 39
3.4 完整代码 40
第4章 围棋盘面识别 51
4.1 概述 51
4.1.1 案例描述 51
4.1.2 案例分析 52
4.2 总体设计 53
4.2.1 系统需求 53
4.2.2 总体思路及流程 53
4.3 围棋盘面识别的实现 54
4.3.1 查找线段 54
4.3.2 圆心坐标 54
4.3.3 边界判定 56
4.3.4 边界验证 56
4.3.5 黑子、白子还是无子 57
4.4 完整代码 58
第5章 停车场车位检测 66
5.1 概述 66
5.1.1 案例描述 66
5.1.2 案例分析 66
5.2 总体设计 67
5.2.1 系统需求 67
5.2.2 总体思路及流程 68
5.3 停车位车位检测的实现 68
5.3.1 Canny边缘检测 68
5.3.2 模板匹配 69
5.3.3 过滤及验证 69
5.3.4 颜色识别 69
5.3.5 车位检测 70
5.4 完整代码 70
第6章 车道线检测 76
6.1 概述 76
6.1.1 案例描述 76
6.1.2 案例分析 76
6.2 总体设计 77
6.2.1 系统需求 77
6.2.2 总体思路及流程 77
6.3 车道线检测的实现 78
6.3.1 读取视频 78
6.3.2 白色像素 79
6.3.3 限定范围 80
6.3.4 延伸部分 80
6.3.5 标记车道线 81
6.4 完整代码 84
第7章 汉字识别 89
7.1 概述 89
7.2 汉字结构 89
7.3 案例描述 91
7.4 汉字识别的实现 92
7.4.1 二值化 92
7.4.2 连通域 92
7.4.3 端点的识别 92
7.4.4 笔画识别 94
7.4.5 交叉点识别 96
7.4.6 汉字编码 98
7.5 完整代码 98
第8章 OCR文字识别 115
8.1 Tess4J的安装与配置 115
8.1.1 Tess4J的安装 115
8.1.2 Eclipse中的配置 116
8.2 英文识别测试 120
8.3 安装语言包 121
8.4 中文识别测试 123
8.5 训练语言库 124
第9章 车牌定位与识别 126
9.1 概述 126
9.2 案例描述 127
9.3 案例分析 127
9.4 总体设计 128
9.4.1 系统需求 128
9.4.2 总体思路及流程 128
9.5 车牌识别的实现 128
9.5.1 颜色判断 128
9.5.2 蓝色标记 128
9.5.3 去除多余轮廓线 129
9.5.4 一体化 130
9.5.5 车牌的定位 130
9.5.6 透视变换 131
9.5.7 车牌判断 131
9.5.8 字符分割 132
9.5.9 单个字符的识别 132
9.6 完整代码 133
第10章 硬币识别 142
10.1 概述 142
10.1.1 案例描述 143
10.1.2 案例分析 144
10.2 总体设计 145
10.2.1 系统需求 145
10.2.2 总体思路及流程 145
10.3 硬币识别的实现 146
10.3.1 边缘检测 146
10.3.2 测距线 146
10.3.3 闭运算 146
10.3.4 硬币外框 147
10.3.5 硬币直径 148
10.3.6 边缘处理 148
10.3.7 最小外接圆 149
10.3.8 正反面判断 149
10.3.9 旋转测试 150
10.3.10 面额判断 151
10.4 完整代码 152
第11章 零件检测 163
11.1 概述 163
11.1.1 案例描述 163
11.1.2 案例分析 164
11.2 总体设计 165
11.2.1 系统需求 165
11.2.2 总体思路及流程 165
11.3 零件安装检测的实现 165
11.3.1 Canny边缘检测 165
11.3.2 霍夫圆检测 166
11.3.3 圆孔的定位 167
11.3.4 透视变换 168
11.3.5 颜色检测 169
11.3.6 芯片检测 169
11.4 完整代码 169
第12章 银行卡卡号识别 178
12.1 概述 178
12.1.1 案例描述 178
12.1.2 案例分析 178
12.2 总体设计 179
12.2.1 系统需求 179
12.2.2 总体思路及流程 179
12.3 银行卡卡号识别的实现 180
12.3.1 边缘检测 180
12.3.2 闭运算 180
12.3.3 最小外接矩形 180
12.3.4 卡号区域 181
12.3.5 顶点位置 181
12.3.6 透视变换 182
12.3.7 二值化 182
12.3.8 数字识别 182
12.4 完整代码 182
第13章 全景拼接 190
13.1 概述 190
13.2 全景拼接的原理 191
13.3 全景拼接的实现 192
13.3.1 特征点检测 192
13.3.2 特征点匹配 192
13.3.3 单应矩阵 193
13.3.4 透视变换 194
13.3.5 拼接 194
13.3.6 裁剪 196
13.4 完整代码 196
第14章 二维码识别 201
14.1 二维码简介 201
14.2 OpenCV中的二维码函数 201
14.3 二维码识别案例 202
第15章 机器学习 205
15.1 Deeplearning4J简介 205
15.2 手写数字识别 206
15.2.1 概述 206
15.2.2 K-近邻算法简介 207
15.2.3 手写数字识别的实现 208
15.2.4 完整代码 209
附录A OpenCV常用函数表 213
附录B 一种简单易学、无须记忆的汉字编码法 219
B.1 简介 219
B.2 基本概念 219
B.3 字根 220
B.4 汉字字根规则 221
B.5 编码规则 222
B.6 拼音模式和笔画模式 223
B.7 编码样例 223
IV
V
本书是与《Java OpenCV高效入门》配套的案例集。全书共15章,第1章是OpenCV简介及开发环境的搭建,第2~15章是14个实用项目(专题),包括魔方图案识别、答题卡评分、围棋盘面识别、停车场车位检测、车道线检测、汉字识别、OCR文字识别、车牌定位与识别、硬币识别、零件检测、银行卡卡号识别、全景拼接、二维码识别、机器学习等内容。书中的项目均有相当的难度,需要综合运用OpenCV的各种算法实现。
本书面向的读者是包括高校学生在内的各类OpenCV学习者、研究计算机视觉的业余爱好者及需要快速上手的专业人员。
姚利民,毕业于东南大学,长期在外资企业从事管理工作,同时致力于AI及图像处理的研究工作。2012年赴某知名跨国企业全球总部工作,回国后自主创业。目前主要从事AI研究,专攻棋类博弈和计算机视觉处理。有感于相关资源的匮乏,主讲基于Java的OpenCV课程,短期内便获大量关注,著有《Java OpenCV高效入门》。
— 没有更多了 —
以下为对购买帮助不大的评价