OpenCV图像处理编程实例
  • 推荐0
  • 收藏2
  • 浏览4.3K

OpenCV图像处理编程实例

朱伟 (作者) 

  • 书  号:978-7-121-28573-8
  • 出版日期:2016-05-09
  • 页  数:396
  • 开  本:16(185*260)
  • 出版状态:上市销售
  • 维护人:陈晓猛
本书以OpenCV开源库为基础实现图像处理领域的 很多通用算法,并结合当今图像处理领域前沿技术,对多个典型工程实例进行讲解及实现。全书内容覆盖面广,由基础到进阶,各个技术点均提供详细的代码实现,以帮助读者快速上手和深入学习。
站在一线开发人员角度详细解析OpenCV的应用
理论与实际案例相结合,提供了多个更具实用性和前沿性的案例
前 言

随着计算机与图像处理技术的快速发展,应用计算机解决现实场景下图像分析的需求日趋增多。计算机处理图像技术正在用全新的用户体验方式影响着人们的生活,微软开发Xbox360,功能包括人脸检测、人脸识别与跟踪、表情判断、动作识别;Google开发的无人驾驶汽车;腾讯QQ开发手势达人PPT翻页;Google街景实现城市街道全景显示,等等。
为高效解决计算机处理图像问题,因特尔公司发起并参与开发了一个基于BSD开源发行的跨平台计算机视觉库OpenCV。随着OpenCV版本的不断更新,提供的相关算法库也越来越完善,大大提高了图像处理开发的效率。为了使您尽快能够入门图像处理开发,本书作者根据自己的项目实践经验,从零基础讲起,让您在思索中领略实用的OpenCV开发技术,实例化的讲解让您在使用本书后能得到无限启发。
本书特色
本书将理论与实际案例相结合,始终秉承“学以致用”的理念,提供多个颇具实用性和前沿性的实例,用详细的代码验证实现,通过大量的例子让读者边学边练,注重给予读者一定的启发和引导。本书的编写是站在一线开发人员的角度,用通俗易懂的语言详细解释了OpenCV的应用,更像一个OpenCV的工作人员在解说OpenCV的方方面面,严谨的逻辑结构和清晰的脉络为读者入门及深入了解和掌握OpenCV图像处理开发技术奠定了扎实的基础。
如何使用本书
本书需要读者具有C/C++方面的基础,在阅读本书之前至少要对C/C++基本的语法和概念有初步了解,若您对相关知识内容存在疑惑,可参考《C++ Primer》(Stanley B.Lipman)或《C++编程思想》(Bruce Eckel)等书籍。
若您刚开始从事图像处理领域开发,请您先掌握图像处理相关知识点,具体资料可参考《数字图像处理》(Rafael.C.Gonzalez)或《图像工程》(章毓晋)等书籍。
若您刚接触应用OpenCV进行图像处理开发,请您先熟悉OpenCV开源库架构,然后总览全书,了解本书的框架与结构并对基础篇部分进行详细阅读。基础篇提供的相关知识点能让您能快速上手编程,实践出真知,希望您能独立实现这部分知识点的代码。
若您已经接触过OpenCV,想进一步提高图像处理开发技术,请您关注本书中应用操作与实例讲解。作者独立实现了OpenCV提供的部分算法库,如OTSU二值化、Sobel算子及Harris角点等,授之以渔,让您在实际算法库开发中体验编程乐趣。
关于本书
本书由几位多年从事图像处理领域的科研工作者编写,书中的内容安排经过项目课题组的讨论与审定,理论与工程实用相结合。全书由朱伟、赵春光、欧乐庆与王寿峰等共同编著,其中赵春光、欧乐庆与马浩负责第1、2、5章,王寿峰、付乾良负责第3、4章,朱伟、白俊奇负责第6、7、8、9章,全书由朱伟统稿和整理。特别感谢百忙之中为本书主审并提出宝贵意见的研究员级高级工程师翟尚礼。
致谢
感谢领导与同事在本书写作中帮助与指导,他们分别是郑坚、成伟明、章林、汪洋、孙宜斌、朱栋、郝金双、张奔、杜瀚宇、司哓云、邵华、龙超、苗锋、文杰、潘望、孙超、童建文、李嘉琦及李泮麟。
在本书的编写过程中参阅了国内外大量文献,在此对书中所引用资料的作者表示由衷感谢。
感谢空中交通管理系统与技术国家重点实验室对本书理论研究方面提供的支持。
感谢电子工业出版社的陈晓猛编辑的辛勤付出,他们对出版物追求完美、细致入微的专业态度给我留下了颇为深刻的印象。
勘误与支持
由于作者水平有限,书中一定有些纰漏与谬误之处,恳请读者及专家批评指正。若您有好的意见和建议请发邮件到zw301289@163.com,关于本书的勘误和补遗将会在CSDN博客(http://blog.csdn.net/kingsley_zhuwei)上发布。

朱 伟
2016年3月于南京

目录

Part I 基础篇 OpenCV开发基础
第1章 初识OpenCV
1.1 OpenCV初识
1.1.1 OpenCV简介
1.1.2 OpenCV组件及架构
1.1.3 OpenCV资源
1.2 VS2012安装OpenCV2.4.x
1.3 VS2013安装OpenCV3.0
1.4 Sublime下配置OpenCV
1.5 小结
第2章 图像及视频基本操作
2.1 图像初级操作
2.1.1 Mat类
2.1.2 Mat基本操作
2.1.3 Mat类型转换
2.1.4 图像读取显示保存
2.1.5 图像存储
2.2 图像几何变换
2.2.1 坐标映射
2.2.2 平移
2.2.3 缩放
2.2.4 旋转
2.2.5 仿射变换
2.3 视频操作
2.3.1 VideoCapture类
2.3.2 视频写操作
2.3.3 视频质量评价
2.4 图像基础应用操作
2.4.1 界面事件
2.4.2 区域提取
2.4.3 图像元素遍历——反色
2.4.4 单窗口显示多幅图像
2.4.5 图像颜色空间转换
2.4.6 图像批量读取——规则
2.4.7 图像批量读取——无规则
2.5 小结
Part II 进阶篇 图像处理技术
第3章 进阶篇——图像灰度变换技术
3.1 阈值化处理
3.1.1 OTSU阈值化
3.1.2 固定阈值化
3.1.3 自适应阈值化
3.1.4 双阈值化
3.1.5 半阈值化
3.2 直方图处理
3.2.1 灰度直方图
3.2.2 H-S直方图
3.2.3 BGR直方图
3.2.4 自定义直方图
3.2.5 灰度直方图均衡
3.2.6 彩色直方图均衡
3.2.7 直方图变换——查找
3.2.8 直方图变换——累计
3.2.9 直方图匹配
3.2.10 直方图对比
3.2.11 直方图的反向投影
3.3 距离变换
3.3.1 距离
3.3.2 邻接性
3.3.3 区域
3.3.4 距离变换——扫描
3.3.5 距离变换——distanceTransform
3.4 Gamma校正
3.5 其他常见的灰度变换技术
3.5.1 线性变换
3.5.2 对数变换
3.5.3 对比度拉伸
3.5.4 灰度级分层
3.5.5 灰度比特平面
3.6 实例应用
3.6.1 最大熵阈值分割
3.6.2 投影峰谷查找
3.7 小结
第4章 进阶篇——图像平滑技术
4.1 图像采样
4.1.1 最近邻插值
4.1.2 双线性插值
4.1.3 插值操作性能对比
4.1.4 图像金字塔
4.2 傅里叶变换
4.2.1 图像掩码操作
4.2.2 离散傅里叶
4.2.3 图像卷积
4.3 图像噪声
4.3.1 椒盐噪声
4.3.2 高斯噪声
4.4 空间平滑
4.4.1 盒滤波
4.4.2 均值滤波
4.4.3 中值滤波
4.4.4 高斯滤波
4.4.5 双边滤波
4.5 实例应用
4.5.1 导向滤波
4.5.2 图像污点修复
4.5.3 旋转文本图像矫正
4.6 小结
第5章 进阶篇——边缘检测技术
5.1 边缘检测基础
5.1.1 边缘检测概念
5.1.2 梯度算子
5.1.3 一阶微分算子
5.1.4 二阶微分算子
5.1.5 图像差分运算
5.1.6 非极大值抑制
5.2 基本边缘检测算子——Sobel
5.2.1 非极大值抑制Sobel检测
5.2.2 图像直接卷积实现Sobel
5.2.3 图像卷积下非极大值抑制Sobel
5.2.4 Sobel库函数实现
5.3 基本边缘检测算子——Laplace
5.4 基本边缘检测算子——Roberts
5.5 基本边缘检测算子——Prewitt
5.6 改进边缘检测算子——Canny
5.6.1 Canny算子
5.6.2 Canny原理及实现
5.6.3 Canny库函数实现
5.7 改进边缘检测算子——Marr-Hildreth
5.8 几何检测
5.8.1 霍夫变换
5.8.2 线检测技术
5.8.3 LSD快速直线检测
5.8.4 圆检测技术
5.9 形状检测
5.9.1 轮廓检测
5.9.2 凸包检测
5.9.3 轮廓边界框
5.9.4 轮廓矩
5.9.5 点多边形测试
5.10 角点检测
5.10.1 moravec角点
5.10.2 harris角点
5.10.3 Shi-Tomasi角点
5.11 实例应用
5.11.1 颜色圆检测
5.11.2 车牌区域检测
5.12 小结
第6章 进阶篇——形态学技术
6.1 腐蚀膨胀操作
6.2 开闭运算操作
6.3 形态学梯度
6.4 形态学Top-Hat
6.5 实例应用
6.5.1 形态学滤波角点提取
6.5.2 车牌目标提取
6.6 小结
Part III 高级篇 图像应用技术
第7章 高级篇——图像分割技术
7.1 分水岭分割
7.1.1 分水岭的特征
7.1.2 实现分水岭分割
7.1.3 分水岭分割合并
7.2 FloodFill分割
7.3 均值漂移MeanShift
7.4 图割Grabcut
7.5 实例实例
7.5.1 奇异区域检测
7.5.2 肤色检测
7.6 小结
第8章 高级篇——特征分析
8.1 尺度空间
8.1.1 尺度与旋转不变性
8.1.2 特征点尺度变换
8.2 特征描述子
8.2.1 SIFT特征
8.2.2 SURF特征
8.2.3 ORB特征
8.3 方向梯度直方图HOG
8.3.1 HOG原理
8.3.2 HOG特征提取步骤
8.3.3 HOGDescriptor特征描述类
8.3.4 HOG特征描述实现
8.4 局部二值模式LBP
8.4.1 经典LBP
8.4.2 圆形LBP
8.5 Haar特征描述
8.5.1 Haar原理
8.5.2 Haar特征提取
8.6 应用实例
8.6.1 最近邻特征点目标提取
8.6.2 最大极值稳定区域匹配MSER
8.6.3 字符特征提取
8.6.4 车牌字符SVM训练
8.7 小结
第9章 高级篇——复杂视频处理技术
9.1 视频稳像技术
9.2 图像拼接
9.2.1 拼接原理及过程
9.2.2 图像拼接实现
9.3 高动态范围图像HDR
9.3.1 HDR合成技术
9.3.2 HDR合成原理
9.3.3 OpenCV实现
9.4 背景建模
9.4.1 背景差分
9.4.2 混合高斯背景建模
9.4.3 混合高斯背景建模实现
9.4.4 混合模型MOG2成员参数设定
9.4.5 KNN模型背景建模实现
9.4.6 GMG模型背景建模实现
9.5 级联分类器——人脸检测
9.5.1 级联分类器
9.5.2 CascadeClassifier类
9.6 应用实例
9.6.1 运动目标提取
9.6.2 TLD单目标跟踪
9.6.3 人眼检测与跟踪
9.7 小结
附录A
1——代码清单
2——CMake编译OpenCV3.1源码
3——OpenCV3.1 Extra扩展库
参考文献

本书勘误

印次
  • 页码:12  •  行数:5  •  印次: 2

    更正为:D:\Program Files\opencv2.4.9\opencv\build\x86\vc11\lib

    朱伟 提交于 2018/1/24 8:32:51
    陈晓猛 确认于 2018/1/24 9:33:30
  • 页码:12  •  行数:3  •  印次: 2

    更正为:D:\Program Files\opencv2.4.9\opencv\build\x64\vc11\lib

    朱伟 提交于 2018/1/24 8:34:12
    陈晓猛 确认于 2018/1/24 9:33:39
  • 页码:12  •  行数:5  •  印次: 2

    更正为:D:\ProgramFiles\opencv2.4.9\opencv\ build\x86\vc11\staticlib

    朱伟 提交于 2018/1/24 8:34:49
    陈晓猛 确认于 2018/1/24 9:33:47
  • 页码:33  •  行数:10  •  印次: 2

    高度缩放因子应该是ky=N/n

    陈晓猛 提交于 2017/8/25 10:19:22
    陈晓猛 确认于 2017/8/25 10:20:53
  • 页码:77  •  行数:6  •  印次: 2

    代码26行,at方法应该是(j,i),不是(i,j)

    陈晓猛 提交于 2017/8/25 10:20:40
    陈晓猛 确认于 2017/8/25 10:21:03

读者评论

  • 第一次configure通过,添加opencv_contrib路径后再次configure就报错了,我只是用的VS15 2017和cmake-3.13.0-rc3-win64-x64,这两个版本

    Joe发表于 2018/11/12 15:36:37
  • 我用VS15 2017编译CONTRIB一直通不过,要怎么办

    Joe发表于 2018/11/12 15:30:31
  • 代码2-19的第27行调用回调响应函数onchangeTrackBar(),为什么没有传递参数,我在运行你的代码的时候就运行不了

    MrRichard发表于 2017/10/14 16:38:02
    • createTrackbar()的第三个参数 0 应该是一个int型的指针

      MrRichard发表于 2017/10/14 16:54:09
  • 书上代码3-1的22行24行的nCols,nRows反了,下载的代码里的和书上一样也反了,正确的应该是先nRows再nCols吧。

    风吹麦浪发表于 2017/8/22 22:22:02
  • 请问作者:本书65页调用showManyImages(srcImages,cv::Size(512,400));第二个参数的意义是什么。
    另外:定义函数showManyImages(const std::vector<cv::Mat>&srcImages,cv::Size imgSize )时,第二个参数整篇中没有用到。

    顾佳敏发表于 2017/5/26 18:48:19

相关图书

Python机器学习手册:从数据预处理到深度学习

Chris Albon (作者) 韩慧昌 (译者)

这是一本关于Python的图书,采用基于任务的方式来介绍如何在机器学习中使用Python。书中有近200个独立的解决方案(并提供了相关代码,读者可以复制并粘贴这...

¥89.00

Python接口自动化测试

王浩然 (作者)

本书主要介绍如何用Python实现接口自动化测试。全书主要内容包括接口基础、接口手工测试、编程前的准备、用Python处理MySQL数据库、用Python发送H...

¥59.00

Python编程之美:最佳实践指南

Reitz,Schlusser (作者) 夏永锋 (译者)

本书是Python用户的一本百科式学习指南,由Python社区数百名成员协作奉献。<br>全书内容分为三大部分。第一部分是关于如何配置使用Python编辑工具的...

¥89.00

Lua程序设计(第4版)

Roberto Ierusalimschy (作者) 梅隆魁 (译者)

本书由 Lua 语言作者亲自撰写,针对 Lua 语言本身由浅入深地从各个方面进行了完整和细致的讲解。作为第 4 版,本书主要针对的是 Lua 5.3,这是本书撰...

¥89.00

Python网络安全教科书

胡松涛 (作者)

本书是一本黑客技术的入门实战书籍,从最初的工具选择,一直到最后的攻击演示,由浅入深地引导读者全面系统地掌握网络安全防范技术,借助Python打造更安全的网络。<...

¥69.00

Python数据分析入门——从数据获取到可视化

沈祥壮 (作者)

本书作为数据分析的入门图书,以Python语言为基础,介绍了数据分析的整个流程。本书内容涵盖数据的获取(即网络爬虫程序的设计)、前期数据的清洗和处理、运用机器学...

¥39.00