本书基于面向 Python 的 OpenCV(OpenCV for Python),介绍了图像处理的方方面面。本书以 OpenCV 官方文档的知识脉络为主线,并对细节进行补充和说明。 书中不仅介绍了 OpenCV 函数的使用方法,还介绍了函数实现的算法原理。在介绍 OpenCV 函数的 使用方法时,提供了大量的程序示例。而且在介绍函数对图像的处理前,往往先展示函数对数值、数组 的处理,方便读者从数值的角度观察和理解函数的处理过程和结果。在介绍具体的算法原理时,本书尽 量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用过多复杂抽象的公式。
第一版上市2年销售近12000册,针对第一版的内容,在保持知识结构不变的情况下,对部分重点、难点进行了重新梳理与说明。重点对K近邻算法、支持向量机、K均值聚类、人脸识别部分进行了较大篇幅的修改。在这部分中,对相关的知识点进行了更细致深入的介绍,并增加了部分例题。
李立宗
南开大学硕士,天津职业技术师范大学副教授,从事计算机视觉领域的教学和科研工作。拥有发明专利一项、软件著作权十余项,公开发表论文十余篇,著有《计算机视觉40例:从入门到深度学习(OpenCV-Python)》等多部图书。在网易云课堂主讲的《OpenCV图穷匕见》等多门课程被评为精品课。
本书第1版出版后,深受广大读者朋友的喜爱,被很多高校选为教材,目前累计重印9次。为了更好地方便大家学习,我对本书进行了修订。本次修订主要完成了以下几个方面的工作:
1. 内容完善、重点针对人工智能部分
本书第2版在保持知识结构不变的前提下,对部分重点、难点知识进行了重新梳理与说明。重点对K近邻算法、支持向量机、K均值聚类、人脸识别部分进行了较大篇幅的修改。在这部分中,对相关的知识点进行了更细致、深入的介绍,并增加了部分例题。在例题的介绍上,增加了更详尽的分析过程,并对其中的一些难点问题进行了图解说明。在代码实现上,给出了更加细致的说明与介绍。
2. 饱和展示
在介绍一个知识点时,针对要使用的基础知识点,以“如第N章所述、如前所述”等形式导入,大部分情况下是较为合理的。但是,如果要介绍的知识点和要导入的知识点难度都较大,那么采用上述方式导入,会造成理解上的困难。针对上述问题,我对导入部分进行了重新设计,以期帮助大家更好地快速过渡到核心关键知识点的学习。针对一些关键图表等,也采用重复展示的方式,避免大家反复地回翻到前面的页面查看该图表而分散注意力,使大家能够更好地将注意力集中在当前知识点上。
针对一些难度较大、不好理解、容易使用错误的知识点(如掩膜等),分别在不同的章节,从不同的角度,对这部分知识点进行了讲解,以期能够帮助大家更好地理解相关知识点。
针对用到的一些难度较大、比较典型的Python知识点进行了介绍,以期帮助大家在Python基础比较薄弱,甚至不太了解Python的情况下能够阅读本书,完成程序的设计与编写。
3. 一图胜千言
一些知识点相对比较抽象,如果单纯使用文字描述,此时的说明可能会显得苍白无力,造成理解上的困难。图表能够形象地说明问题的核心本质,帮助我们更深入、系统地理解问题的内在逻辑。针对一些相对抽象的知识点,绘制了示意图,来帮助大家更直观、更深入地理解其原理。针对一些流程比较复杂的案例,绘制了流程图,帮助大家厘清问题的具体逻辑与思路。
4. 例题解析与代码注释
本书第2版对一些相对较难例题的解答进行了重新设计。其中,增加了例题的分析过程,在分析过程中,对例题的相关知识点、实现思路等进行了更详细的介绍。在总体说明上,进行了模块或步骤划分,让解决问题的思路更具条理性。在全局的展示与理解上,增加了流程图,对解题的具体思路和流程进行更清晰的介绍与展示。在代码实现上,对函数的选取、使用等进行了更细致的介绍。
5. 调整OpenCV的版本
在第2版中,我们使用的版本是OpenCV 4.5。OpenCV的版本升级对应着功能的增加与改进。一般来说,OpenCV的版本更新具有较好的兼容性,新版本是适配旧版本的,不涉及对原有函数的改变。但是,也有极个别的函数存在例外。例如,函数cv2.findContours()在OpenCV3中有3个返回值,在OpenCV4中只有2个返回值。在OpenCV4发布后,很多读者反馈在使用该函数时遇到错误提示。实际上,这是由于OpenCV版本更新后,仍旧使用3个返回值造成的。在第2版中,我们调整了该函数的使用说明,并保留了对该函数早前版本的相关介绍。当然,总体来说,除该函数外,新、旧版本的差别主要体现在功能的增加上。我们在学习基础函数时,不要将关注力过度集中在版本调整上。
6. 增加了配套PPT、练习题
本书第1版出版后,被很多高校选为教材。为了给广大教师、同学提供更好的学习体验,我在第2版中提供了配套PPT和练习题。配套PPT涵盖了本书的全部核心知识点,超过1000页。希望配套PPT能够为大家的学习提供方便。
7. 修订了一些错误
在本书第1版出版后,收到了很多热心读者的反馈,大家提出了很多宝贵的意见和建议。同时,大家也帮忙指出了书中存在的一些书写错误。在认真听取大家意见的基础上,我对书中的问题进行了认真细致的修订。请广大读者朋友们继续支持本书,提出意见和建议,让本书能够更好地改进。
感谢
感谢各位热心读者对本书的支持,感谢你们提出的热心建议与意见。
感谢高铁杠老师、于仕琪老师、董付国老师、毕磊老师对本书的大力支持。
感谢符隆美老师积极促成本书第2版的出版,感谢她对本书的细心修订,同时也感谢为本书出版辛苦付出的各位同人。
感谢家人们帮我分担了很多家务,让本书得以顺利出版。
本书出版受天津职业技术师范大学教材支持项目(项目编号XJJW1970)支持。
扩展服务
作者与天津拨云咨询服务有限公司合作开发了本书配套的资料——“数字图像处理虚拟实验室V0.1”,欢迎大家与作者(lilizong@gmail.com)联系索取相关资料。
本书根据作者的视频课程《Python+OpenCV图像处理》整理扩充而成,欢迎大家扫描本书封底的二维码输入“视频”获取相关视频课的内容。
李立宗
2021.4.6