- Python图像处理实战
- 桑迪潘·戴伊
- 762字
- 2021-03-18 18:08:05
前言
本书介绍如何使用流行的Python图像处理库(如PIL、scikit-image、python-opencv、SciPy ndimage和SimpleITK)、机器学习库(scikit-learn)和深度学习库(TensorFlow、Keras)来解决图像处理问题。通过学习本书,读者能够通过编写程序代码来实现复杂的图像处理(如图像增强、滤波、复原、分割、分类和目标检测)算法,还能够使用机器学习和深度学习模型解决复杂的图像处理问题。
本书从基础开始,通过书中所提供的可复制的Python实现引导读者逐步进阶。本书从经典的图像处理技术开始,探索图像处理算法的演变历程,始终紧扣图像处理以及计算机视觉与深度学习方面的最新进展。读者将学习如何用Python的PIL、scikit-image和SciPy ndimage等图像处理库编写Python 3代码片段,以及如何快速实现复杂的图像处理算法。读者还将学习如何使用scikit-learn库和机器学习模型,并随后探索深度卷积神经网络(CNN),如TensorFlow/Keras VGG-19,用端到端深度学习YOLO模型进行目标检测,将DeepLab v3+用于语义分割和神经风格迁移模型等。读者还会学到一些高级图像处理技术,如梯度混合、变分去噪、接缝雕刻、图像绗缝和人脸变形,并将学习高效图像处理的各种实现算法。
本书秉持“高度实用”的宗旨,引导读者学习一系列图像处理的概念/算法,以帮助他们详细了解如何用高级的Python库函数实现这些算法。
读者对象
本书适合工程师/应用研究人员阅读,也适合对计算机视觉、图像处理、机器学习和深度学习感兴趣的软件工程师作为参考,尤其适合擅长Python编程的读者学习——他们希望深入探索图像处理的各类主题(从概念到实施),解决一系列复杂问题。阅读本书前,读者应具备一定的数学和编程知识背景,还应掌握一些基础的机器学习知识。
本书内容
第1章介绍什么是图像处理及图像处理的应用、图像处理流程、在Python中安装不同的图像处理库、使用Python进行图像输入/输出和显示、处理不同的文件格式和图像类型并执行基本的图像操作。
第2章介绍采样、傅里叶变换与卷积,以及用Python实现它们的例子。读者将学习理解后续内容所需掌握的简单信号处理工具。
第3章演示如何使用Python对图像进行卷积,还会讨论频域滤波等主题。
第4章介绍最基本的图像处理工具,如均值/中值滤波和直方图均衡化,它们仍然是最强大的图像处理工具。本章将对它们进行阐述,并对这些基本工具给出现代的诠释。
第5章涵盖与图像增强相关的其他主题,即改善图像外观或有用性的问题。讨论的主题包括图像导数、锐化和反锐化掩模,以及融合图像等。所有概念的描述均辅以Python示例。
第6章介绍形态学图像处理,涵盖基于scikit-image形态学模块、基于scikit-image filter.rank模块和基于SciPy ndimage.morphology模块的形态学图像处理的相关内容。
第7章描述从图像/计算图像描述符中进行特征提取的几种技术。
第8章概述图像分割的基本技术,霍夫变换、二值化和Otsu分割到更高级的图形切割算法。
第9章介绍一些图像处理中的经典机器学习方法,用于图像分割和目标检测/识别。
第10章描述图像处理/计算机视觉领域逐渐从经典的基于特征的机器学习模型过渡到深度学习模型的原因。
第11章描述卷积神经网络在目标检测、语义分割和神经风格迁移方面的一些显著应用,演示了一些流行的模型,如YOLO和目标提案(object proposal),概述如何使用迁移学习来避免从头开始学习一个非常深的神经网络。
第12章将给出许多其他的图像处理问题以及解决这些问题的各种算法。这些问题包括接缝雕刻(用于上下文感知图像大小的调整)、图像绗缝(用于非参数采样和纹理转移的图像调整)、使用泊松(梯度)图像编辑(混合)将一幅图像无缝地混合到另一幅图像中、图像修复(以复原退化的图像)以及变分图像处理(如图像去噪)。
阅读本书的必备知识
1.运行书中代码所需的Python基本知识,以及访问图像数据集和GitHub链接的技能。
2.理解书中概念所需的基本的数学背景知识。
下载示例代码文件
读者可以通过在异步社区图书详情页单击“配套资源”来下载本书的示例代码文件和彩色图像文件。下载代码文件后,请用以下最新版本的解压缩软件工具解 压缩:
WinRAR/7-Zip for Windows、Zipeg/iZip/UnRarX for Mac和7-Zip/PeaZip for Linux。
本书体例约定
CodeInText:指示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。下面是一个示例:“将下载的WebStorm-10*.dmg磁盘映像文件作为系统中的另一个磁盘挂载。”
代码块以如下样式显示:
viewer = viewer.ImageViewer(im) viewer.show()
当希望读者注意代码块的某一部分时,相关的行或项会以粗体显示:
[default] exten => s,1,Dial(Zap/1|30) exten => s,2,Voicemail(u100) exten => s,102,Voicemail(b100) exten => i,1,Voicemail(s0)
任何命令行输入或输出如下所示:
>>> pip install numpy >>> pip install scipy
粗体:表示读者看到的新术语、重要的单词。例如,菜单或对话框中的单词会出现在文本中,例如“从管理面板中选择系统信息”。