OpenCV是可以在多平台下运行、并提供了多语言接口的一个库,实现了图像处理和计算机视觉方面的很多通用算法。
本书是介绍OpenCV结合Visual Studio进行图像识别和处理的编程指南。全书共11章,介绍了OpenCV和Visual Studio的安装设置,以及Core、HighGUI、ImgProc、Calib3d、Feature2d、Video、Objdetect、ML、Contrib等模块,涉及文字处理、照片处理、图像识别、OpenGL整合、硬件设备结合使用等众多方面的功能,*后还给出了综合应用的实例。
本书适合对于图像识别和处理技术感兴趣,并且想要学习OpenCV的应用和编程的读者阅读和参考。
你是否对智能机器人、无人驾驶、人脸识别等技术感兴趣呢?其实,这些技术都离不开图像识别。图像识别技术除了包括静态文本的OCR扫描,还包括动态识别技术,如环境空间探测、动态物体追踪、视频比对分析等,这些技术可以在智能感应家电、自动化设备、家庭安保系统等各种环境中应用。
本书从基本原理入手,通过充分的实例来介绍各种图像处理应用的开发。程序代码使用Visual Studio并结合C/C 语言,帮助读者掌握真正的应用场景和开发技能。
本书适合对于图像识别和处理技术感兴趣并且想要学习OpenCV的应用和编程的读者阅读和参考。
作者简介
望熙荣,中国台湾中兴大学环境工程系副教授,多年教授计算机程序设计、大数据分析、R语言在环境工程中的应用等课程。
望熙贵,现任摩托罗拉半导体事业部项目经理,曾先后在多家知名IT企业担任项目经理。
目 录
第1章 系统安装与项目准备1
1.1 认识OpenCV2
1.2 系统安装3
1.2.1 安装OpenCV3
1.2.2 安装Visual Studio 20136
1.3 开始新项目7
项目属性的设置9
第2章 Core模块16
2.1 显示图文件17
2.2 图文件转换30
2.3 图文件混合32
2.4 改变对比与明亮度39
2.5 基本绘图41
2.6 文字处理49
2.7 离散的傅立叶变换57
2.8 使用XML与YAML进行文件的
输出输入61
2.9 与OpenCV 1互通70
第3章 HighGUI模块74
3.1 滑块功能75
3.2 读取视频文件进行相似性
比较77
3.3 产生视频文件82
第4章 ImgProc模块85
4.1 图像的平滑化86
4.2 腐蚀与膨胀90
4.3 更多形态处理93
4.4 图像金字塔96
4.5 基本阈值法99
4.6 建立自己的线性滤波器104
4.7 将图像加上边框107
4.8 Sobel算子108
4.9 拉普拉斯运算112
4.10 Canny图像边缘检测113
4.11 霍夫线变换116
4.12 霍夫圆变换121
4.13 重映射124
4.14 仿射变换127
4.15 直方图分布平等化129
4.16 直方图分布计算131
4.17 直方图分布比较134
4.18 反向投影136
4.19 模板匹配149
4.20 寻找图的轮廓153
4.21 凸包159
4.22 为轮廓建立许多矩形与
圆形162
4.23 为轮廓建立旋转的矩形与
椭圆形164
4.24 图像矩166
4.25 点多边形测试169
4.26 线性变换171
第5章 Calib3d模块173
5.1 使用棋盘进行相机校准174
5.2 视差193
第6章 Feature2d模块195
6.1 特征描述196
6.2 哈瑞斯角点检测198
6.3 使用FLANN进行特征
匹配200
6.4 使用Features2D和Homography
识别对象202
6.5 Shi-Tomasi角点检测204
6.6 建立自定义的角点检测206
6.7 在次像素检测角位置209
6.8 特征检测211
第7章 Video模块213
7.1 图像拍摄214
7.2 生成视频文件215
7.3 指定帧218
7.4 移动感知219
7.5 计算移动时间221
7.6 即时对象追踪225
7.7 播放暂停229
第8章 Objdetect模块231
级联式类分类232
第9章 ML模块236
9.1 支持向量机的介绍239
9.2 非线性可分开数据的支持
向量机242
第10章 Contrib模块245
探索视网膜效果并用来进
行图像处理246
第11章 实际应用251
11.1 图像藏密252
11.2 图像采集255
11.3 QR Code检测268
11.4 与OpenGL整合275
附录281