开篇先介绍如何在Windows和ubuntu上部署OpenCV,然后过度到核心章节,从灰度图像、彩色图像、图像平滑、边缘检测、霍夫变换等几个维度入手讲解,尽量拆分算法,代码实现用C++和Python代码。案例在每章最后分享,方便读者练习。
系统阐述OpenCV基本概念、数学原理、C++和Python实现!
前言
数字图像处理,即用计算机对图像进行处理。初期,图像数字化的设备是非常昂贵和复杂的,随着互联网、人工智能、智能硬件等技术的迅猛发展,硬件成本越来越便宜,使得在我们生活中产生了大量的图像和视频,与此同时,计算机视觉技术在人类生活中起到的作用也越来越大,其在商业、工业、医学等领域有着广泛的应用。
如今,连市场上很低价位的智能手机都可以配置一组高分辨率的摄像头,安卓和苹果手机应用市场中出现了大量基于图像处理的App,比如Rookie Cam、VSCO、Snapseed 等,这些App 内均有大量图像处理方法,如图像的裁剪、缩放、旋转、美颜、饱和度和亮度的调整及其各种滤镜方法等,通常可以满足人们日常生活中拍照娱乐的需求。我们经常使用的购物App,如淘宝中的“拍立淘”功能,可以用它拍下我们喜欢的物品,然后会自动检索出与其匹配的商品。还有比如基于人脸识别的手机支付、考勤系统等,基于字符识别的智能停车系统等,可见数字图像处理已经慢慢地和我们的生活、娱乐息息相关。
本书整体架构及特色
OpenCV 作为一款开源的计算机视觉开发工具包,在计算机视觉领域扮演着非常重要的角色,它在提供源码的同时,给出了非常完整的OpenCV 函数手册及其示例手册,这两个文档也是学习OpenCV 的第一手和最重要的资料。这些优势使得数千名研究人员在视觉领域能够获得更高的生产力,并帮助学生和专业人员快速开发和研究有关的机器视觉项目,而我也是其中的众多受益者之一。
本书大体按照经典教材冈萨雷斯的《数字图像处理(第三版)》和OpenCV 使用手册(主要是improc 模块)的知识脉络,并在此基础上加入了某些具体方向的最新方法,试图帮助初学者更加快速、系统地掌握基本的数字图像处理技术的数学原理,以及如何将抽象的数学原理转换为代码实现的方法,然后详细介绍了OpenCV 实现对应的函数,并分别给出了C++ 接口和Python 接口的使用方法,以及OpenCV 2.X 和OpenCV 3.X 的区别。
本书面向的读者
本书中图像算法的数学原理部分适合数字图像处理的初学者,示例的C++ 部分适合具备C++ 编程基础的读者,示例的Python 部分适合具备Python 编程基础的读者,同时对于使用OpenCV 2.X 版本的读者,书中介绍了OpenCV 3.X 版本的新特性,这样可以快速过渡到3.X 版本。
致谢
特别感谢电子工业出版社博文视点的编辑郑柳洁老师,在写这本书的过程中,她不厌其烦地解答我遇到的各种各样的问题,真心感谢她一直以来的支持和肯定。
感谢CSDN 的白羽中帮助我联系到了博文视点的杨中兴和郑柳洁老师,没有您的帮助,将无法促成这本书的出版。
感谢我的朋友戴传军和张莹莹给这本书提出了宝贵的建议,以及帮助我完成了书中一些非常重要的图表。
感谢我的父母、姐姐一直以来对我生活和工作的支持。
感谢OpenCV 开源库的所有贡献者。
限于篇幅,加之作者水平有限,疏漏和错误在所难免,恳请读者批评、指正。如果您发现了错误或者有好的建议,请发邮件至wxcdzhangping@126.com,将不胜感激。
iv
p220底帽运算的描述是不是闭运算的结果减去原图啊
很好
没有C++ 源代码?
第五章 平滑快速平滑 在main中创建 winsize = np.array((5,5)) 在fastMeanBlur中 添加 halfH = halfH.astype(np.uint8) halfW = halfW.astype(np.uint8)
我的天哪,买了后python用的和我用的不一样