这些Python库提供了一种简单直观的方法来转换图像和理解底层数据。当今世界充满了数据,而图像是这些数据的重要组成部分。然而,在使用它们之前,必须对这些数字图像进行处理——分析和操作以提高它们的质量或提取一些有用的信息。常见的图像处理任务包括显示;裁剪、翻转、旋转等基本操作;图像分割、分类和特征提取;图像修复;和图像识别。Python是这些图像处理任务的绝佳选择,因为它作为一种科学编程语言越来越受欢迎,而且它在其生态系统中免费提供了许多最先进的图像处理工具。本文介绍了用于图像处理任务的10个最常用的Python库。这些库提供了一种简单直观的方式来转换图像和理解底层数据。1.scikit-imagescikit-image是一个用于NumPy数组的开源Python包。它为研究、教育和行业应用程序实施算法和实用程序。这是一个相当简单的库,即使对于那些不熟悉Python生态系统的人也是如此。该代码质量高,经过同行评审,由活跃的志愿者社区编写。资源scikit-image有很好的文档记录,有许多示例和实际用法。用法该包是通过skimage导入的,大部分功能都可以在子模块中找到。图像过滤:使用match_template函数进行模板匹配:您可以在图库中找到更多示例。2.NumPyNumPy是Python编程中的核心库之一,提供对数组的支持。图像本质上是包含数据点像素的标准NumPy数组。因此,通过使用基本的NumPy操作,如切片、屏蔽和花式索引,您可以修改图像的像素值。图像可以用skimage加载并用Matplotlib显示。资源NumPy的官方文档页面提供了资源和文档的完整列表。用法使用Numpy对图片进行遮罩:3.SciPySciPy是Python的另一个核心科学模块(如NumPy),可用于基本的图像操作和处理任务。特别是,子模块scipy.ndimage(在SciPyv1.1.0中)提供了对n维NumPy数组进行操作的函数。该软件包目前包括用于线性和非线性滤波、二进制形态学、B样条插值和对象测量的函数。资源有关scipy.ndimage包提供的函数的完整列表,请参阅文档。用法使用SciPy通过高斯滤波器模糊4.PIL/PillowPIL(Python成像库)是一个免费的Python编程语言库,它增加了对打开、操作和保存许多不同图像格式的支持。然而,它的发展停滞不前,它的最后一个版本是在2009年发布的。幸运的是,Pillow是PIL的一个积极开发的分支,它更容易安装,可以在所有主要操作系统上运行,并支持Python3。该库包含基本的图像处理功能,包括点操作、使用一组内置卷积核进行过滤以及颜色空间转换。资源文档包含安装说明和涵盖库每个模块的示例。用法使用ImageFilter增强Pillow中的图像:5.OpenCV-PythonOpenCV(开源计算机视觉库)是计算??机视觉应用中使用最广泛的库之一。OpenCV-Python是OpenCV的PythonAPI。因为后端由用C/C++编写的代码组成,所以OpenCV-Python速度很快,但它也很容易编码和部署(由于前端的Python包装器)。这使其成为执行计算密集型计算机视觉程序的绝佳选择。资源使用OpenCV2-Python-Guide轻松入门OpenCV-Python使用使用图像混合在OpenCV-Python中使用金字塔创建“Orapple”:6.SimpleCVSimpleCV是另一个用于构建计算机视觉应用程序的开源框架。它提供了对几个高性能计算机视觉库的访问,例如OpenCV,而无需了解位深度、文件格式、颜色空间等。它的学习曲线比OpenCV小得多,并且(如其标语所述),“它使计算机视觉变得容易。”支持SimpleCV的一些论点是:即使是初学者也可以编写简单的机器视觉测试相机、视频文件,图像和视频流都可以互操作资源很容易遵循官方文档的指导,并且有大量的示例和用例可以遵循.用法7.MahotasMahotas是另一个用于Python的计算机视觉和图像处理库。它结合了传统的图像处理功能,例如过滤和形态学操作,以及更现代的用于特征计算的计算机视觉功能,包括兴趣点检测和局部描述符。界面用Python编写,适合快速开发,但算法用C++实现,并针对速度进行了优化。Mahotas库运行速度快,代码简单,依赖小。阅读其官方文章以了解更多信息。资源文档包含安装说明、示例,甚至还有一些教程可帮助您轻松开始使用Mahotas。用法Mahotas库依靠简单的代码来完成工作。例如,FindingWally问题可以用最少的代码很好地解决。解决FindingWally问题:8.SimpleITKITK(InsightSegmentationandRegistrationToolkit)是一个“开源、跨平台的系统,为开发人员提供了一套全面的图像分析软件工具。SimpleITK是建立在ITK之上的简化层,旨在促进其在快速原型制作、交易和解释语言中的使用。”它也是一个图像分析工具包,包含大量支持一般过滤操作、图像分割和配准的组件。SimpleITK是用C++编写的,但是可以用包括Python在内的大量编程语言来操作。资源有一个广泛的JupyterNotebook说明了SimpleITK在教育和研究活动中的使用。笔记本演示了如何使用SimpleITK使用Python和R编程语言进行交互式图像分析。使用SimpleITK和Python创建一个可视化的严格CT/MR配准过程:9.pgmagickpgmagick是基于Python的GraphicsMagick库包装器。GraphicsMagick图像处理系统有时被称为图像处理的瑞士军刀。其强大而高效的工具和库集合支持读取、写入和处理超过88种主要格式的图像,包括DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。资源pgmagick的GitHub存储库有安装说明和要求。还有详细的用户指南。使用图像缩放:边缘提取:10.PycairoPycairo是Cairo图形库的一组Python绑定。Cairo是一个用于绘制矢量图形的2D图形库。矢量图形很有趣,因为它们在调整大小或转换时不会失去清晰度。Pycairo可以从Python调用Cairo命令。资源PycairoGitHub存储库是一个很好的资源,其中包含有关安装和使用的详细说明。还有一个入门指南,其中包含关于Pycairo的简短教程。使用Pycairo绘制线条、基本形状和径向渐变:11.结论这些是Python中一些有用且免费提供的图像处理库。有些是众所周知的,有些对您来说可能是新的。
