10个Python图像处理工具,非常全了

作者:Parul Pandey
编译:ronghuaiyang
导读
10个常用的可以进行图像处理的Python库的介绍,可能有些你还没用过,可以试试看!

10个Python图像处理工具,非常全了

文章插图
 
介绍我们这个世界充满了数据,而图像是这些数据的重要组成部分 。然而,要想使用这些图像,需要对它们进行处理 。因此,图像处理是分析和处理数字图像的必要的过程,其主要目的是提高图像质量或从中提取一些信息,然后加以利用 。
图像处理中常见的任务包括图像显示、裁剪、翻转、旋转等基本操作、图像分割、分类和特征提取、图像恢复和图像识别 。Python成为这种图像处理任务的合适选择 。这是因为它作为一种科学编程语言越来越受欢迎,而且在其生态系统中有许多最先进的图像处理工具可以免费使用 。
我们来看一些用于图像处理任务的常用Python库 。
1. scikit Imagescikit-image是一个开源的Python包,可以使用 numpy 数组 。它实现了用于研究、教育和工业应用的算法和实用程序 。它是一个相当简单和直接的库,即使对于Python生态系统的新手也是如此 。这些代码是由活跃的志愿者社区编写的,具有高质量和同行评审的特性 。
资源
它已经通过大量的例子和实际的用例很好地文档化了 。阅读文档:(http://scikit-image.org/docs/stable/user_guide.html) 。
使用
包被导入为 skimage,大多数函数都在子模块中可以找到 。skimage的一些例子包括:
  • 图像滤波

10个Python图像处理工具,非常全了

文章插图
 

10个Python图像处理工具,非常全了

文章插图
 
  • 使用match template函数进行模板匹配

10个Python图像处理工具,非常全了

文章插图
 
2. NumpyNumpy是Python编程中的核心库之一,提供对数组的支持 。图像本质上是一个包含数据点像素的标准Numpy数组 。因此,通过使用基本的NumPy操作,如切片、屏蔽和花式索引,我们可以修改图像的像素值 。可以使用skimage加载图像,并使用matplotlib显示图像 。
资源
完整的资源和文档列表可以在Numpy的官方文档页面上找到 。
使用
使用Numpy来对图像做掩模
10个Python图像处理工具,非常全了

文章插图
 

10个Python图像处理工具,非常全了

文章插图
 
3. Scipyscipy是Python的另一个核心科学模块,类似于Numpy,可用于基本的图像处理和处理任务 。特别是子模块 scipy.ndimage 。提供在n维NumPy数组上操作的函数 。该软件包目前包括线性和非线性滤波、二元形态学、b样条插值和物体测量功能 。
资源
获取由 scipy.ndimage 提供的完整函数列表,请参考文档(https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html#correlation-and-convolution) 。
使用
用SciPy,使用高斯滤波器来做图像的模糊:
10个Python图像处理工具,非常全了

文章插图
 

10个Python图像处理工具,非常全了

文章插图
 
4. PIL/ PillowPIL(Python Imaging Library)是Python编程语言的一个免费库,它支持打开、操作和保存许多不同的图像文件格式 。然而,随着2009年最后一次发布,它的开发停滞不前 。幸运的是,有Pillow,这是PIL的一个积极开发的分支,更容易安装,支持所有主要的操作系统,并支持Python3 。该库包含基本的图像处理功能,包括点操作、使用一组内置卷积核进行过滤和颜色空间转换 。
资源
文档:https://pillow.readthedocs.io/en/3.1.x/index.html提供了安装说明以及库中每个模块的示例 。
使用
在Pillow中使用ImageFilter增强图像:
10个Python图像处理工具,非常全了

文章插图
 

10个Python图像处理工具,非常全了

文章插图
 
5. OpenCV-PythonOpenCV(开放源码计算机视觉库)是最广泛使用的计算机视觉应用程序库之一 。 *OpenCV- python *是OpenCV的python API 。OpenCV-Python不仅速度快,因为后台由用C/ c++编写的代码组成,而且易于编码和部署(由于前台有Python包装器) 。这使得它成为执行计算密集型计算机视觉程序的一个很好的选择 。
【10个Python图像处理工具,非常全了】


推荐阅读