本书基于面向 Python 的 OpenCV(OpenCV for Python),介绍了图像处理的方方面面。本书以 OpenCV 官方文档的知识脉络为主线,并对细节进行补充和说明。 书中不仅介绍了 OpenCV 函数的使用方法,还介绍了函数实现的算法原理。在介绍 OpenCV 函数的 使用方法时,提供了大量的程序示例。而且在介绍函数对图像的处理前,往往先展示函数对数值、数组 的处理,方便读者从数值的角度观察和理解函数的处理过程和结果。在介绍具体的算法原理时,本书尽 量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用过多复杂抽象的公式。 本书适合计算机视觉领域的初学者阅读,包括在校学生、教师、专业技术人员、图像处理爱好者。
本书在介绍OpenCV库函数时,不仅仅介绍函数的语法结构和使用方法,更介绍函数的算法原理和实现方式,让读者能够深度理解该函数的使用方法,能够在图像处理过程中更高效地选用合适的函数来处理问题。同时,针对算法的介绍能够帮助读者更好地理解图像处理的基本原理和方法,能够更高效地解决图像处理的相关问题。
李立宗
南开大学硕士,天津职业技术师范大学副教授,从事计算机视觉领域的教学和科研工作。拥有发明专利一项、软件著作权十余项,公开发表论文十余篇,主编《OpenCV编程案例详解》等多部图书。在网易云课堂主讲的《OpenCV图穷匕见》等多门课程被评为精品课。
目前,计算机视觉技术的应用越来越广泛。伴随着硬件设备的不断升级,构造复杂的计算机视觉应用变得越来越容易了。有非常多的软件工具和库可以用来构造计算机视觉应用,而面向Python的OpenCV(OpenCV for Python)就是一个很好的选择,本书正是基于面向Python的OpenCV来讲解的。
本书的主要内容和特点
OpenCV本身是一个“黑盒”,它为我们提供了接口(参数、返回值)。我们只需要掌握接口的正确使用方法,就可以在完全不了解其内部工作原理(算法)的情况下,方便地进行各种复杂的图像处理。在这一点上,它和Photoshop等工具是相似的,只要掌握了正确的使用方法,就能够得到正确的处理结果。它们都尝试让我们专注于图像处理本身,而不用去考虑算法实现的细节。
在学习Photoshop时,我们学习的是如何使用它的功能,而不需要系统地学习每个功能所采用的算法原理。但是很明显,我们在使用OpenCV进行图像处理时,是不能完全忽略算法实现的,否则是不可能用好OpenCV的,更不能设计出好的计算机视觉应用系统。
从上述角度讲,我们可以从两个角度学习OpenCV:
将OpenCV作为“白盒”学习:深入学习OpenCV每个函数所使用算法的基本原理、每个函数的具体实现细节,进一步加深对图像处理的理解。
将OpenCV作为“黑盒”学习:仅仅将OpenCV作为一个工具来使用,学习的是每个函数内参数的含义和使用方式,学习的目的是更好地使用OpenCV函数。
本书尽量帮助读者在“黑盒”学习和“白盒”学习之间取得平衡。在介绍具体的算法原理时,尽量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用过多复杂抽象的公式。希望这样的安排能够帮助读者更好地掌握计算机视觉的相关知识,更透彻地理解计算机视觉的相关算法。在介绍OpenCV函数的使用方法时,我们为读者提供了大量的程序示例。而且在介绍函数对图像的处理前,往往先展示函数对数值、数组的处理,方便读者从数值的角度观察和理解函数的处理过程和结果。希望这些例题能够帮助读者更好地理解OpenCV处理图像的方式,快速地掌握OpenCV的使用方法,更好地使用OpenCV进行图像处理。需要说明的一点是,本书为黑白印刷,无法很好地呈现某些程序的运行效果,请读者自行运行程序并观察结果。
在内容的设置上,本书以OpenCV官方文档的知识脉络为主线,在此基础上对细节进行补充和说明。
为了方便读者学习,本书力求将每一个知识点作为一个独立的点来介绍和说明。在介绍知识点时,尽量采用从零开始的方式,以避免读者在学习过程中需要不断地离开当前知识点,去查阅相关背景资料。但是由于篇幅有限,如果某一函数已经在前面介绍过,在后面用到该函数时,就没有对其进行重复介绍,而是给出介绍该函数语法的章节位置,方便读者参考阅读。
本书适合计算机视觉领域的初学者阅读,包括在校学生、教师、专业技术人员、图像处理爱好者。
感谢
首先,我要感谢我的老师高铁杠教授,感谢高老师带我走进了计算机视觉这一领域,让我对计算机视觉产生了浓厚的兴趣,更要感谢高老师一直以来对我的关心和帮助。
感谢本书的策划编辑符隆美老师,符老师的专业精神给我留下了非常深刻的印象。感谢本书的责任编辑王中英和许艳老师,她们对本书内容做出了细致修改,不仅修改了很多不通顺的语句和错别字,还对书中存在的技术问题进行了确认和修正。还要感谢为本书出版而付出辛苦工作的电子工业出版社的其他老师们。
感谢OpenCV开源库的所有贡献者。
感谢合作单位天津拨云咨询服务有限公司为本书提供的支持。
感谢我的家人,感谢你们一直以来对我的理解、支持和付出。
互动方式
限于本人水平,书中肯定存在很多不足之处,欢迎大家提出问题和建议,也非常欢迎大家和我交流关于OpenCV的各种问题,我的邮箱是lilizong@gmail.com。
李立宗
2019年3月
174页
**如果结构元完全处于背景图像外,就将膨胀结果图像中对应像素点处理为背景色。
“处于背景图像外”是否应为“处于前景图像外”
作者您好!经阅读您的著作时发现,该书P375页17.1.3分水岭算法图像分割实例下面,使用分水岭算法进行图像分割时,基本的步骤当中第2个步骤,通过腐蚀操作获取这里,是不是应该改为通过膨胀操作获取?因为我在相关程序里面没有发现腐蚀函数,只有膨胀函数。
图 14-5 函数曲线,X的坐标是2000,4000?应该是20,40吧。
342页
maxVal 后面半句应该是 如果没有最大值
mimLoc应该为最小值 后面半句应该是 如果没有最小值
后面几章有几个代码,运行后没有错误,但也不出来图像,可能得原因是什么