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

作者:Parul Pandey
编译:ronghuaiyang

导读

10个常用的能够进行图画处理的Python库的介绍,或许有些你还没用过,能够试试看!

介绍

咱们这个国际充满了数据,而图画是这些数据的重要组成部分。可是,要想运用这些图画,需要对它们进行处理。因而,图画处理是剖析和处理数字图画的必要的进程,其首要意图是进步图画质量或从中提取一些信息,然后加以运用。

图画处理中常见的使命包含图画显现、裁剪、翻转、旋转等根本操作、图画切割、分类和特征提取、图画康复和图画识别。Python成为这种图画处理使命的适宜挑选。这是由于它作为一种科学编程言语越来越受欢迎,并且在其生态体系中有许多最先进的图画处理东西能够免费运用。

咱们来看一些用于图画处理使命的常用Python库。

1. scikit Image

scikit-image是一个开源的Python包,能够运用 numpy 数组。它完成了用于研讨、教育标签20和工业运用的算法和实用程序。它是一个适当简略和直接的库,即便关于Python生态体系的新手也是如此。这些代码是由活泼的志愿者社区编写的,具有高质量和同行评定的特性。

资源

它现已经过很多的比如和实践的用例很好地文档化了。阅览文档:(http://scikit-image.org/docs/stable/user_guide.html)。

运用

包被导入为 skimage,大多数函数都在子模块中能够找到。skimage的一些比如包含:

  • 图画滤波

  • 运用match template函数进行模板匹配

2. Numpy

Numpy是Python编程中的中心库之一10个Python图画处理东西,十分全了,供给对数组的支撑。图画本质上是一个包含数据点像素的规范Numpy数组。因而,经过运用根本的NumPy操作,如切片、屏蔽和花式索引,咱们能够修正图画的像素值。能够运用skimage加载图画,并运用matplotlib显现图画。

资源

完好的资源和文档列表能够在Numpy的官方文档页面上找到。

运用

运用Numpy来对图画做掩模

3. Scipy

scipy是Python的另一个中心科学模块,类似于Numpy,可用于根本的图画处理和处理使命。特别是子模块10个Python图画处理东西,十分全了 scipy.ndimage。供给在n维NumPy数组上操作的函数。该软件包现在包含线性和非线性滤波、二元形态学、10个Python图画处理东西,十分全了b样条插值和物体丈量功用。

资源

获取由 scipy.ndimage 标签20供给的完好函数列表,请参阅文档(https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html#correlation-and-convolution)。

运用

用SciPy,运用高斯滤波器来做图画的含糊:

4.标签11 PIL/ Pillow

PIL(Python Im10个Python图画处理东西,十分全了aging Library)是Python编程言语的一个免费库,它支撑翻开、操作和保存许多不同的图画文件格局。可是,跟着2009年最终一次发布,它的开发停滞不前。走运的是,有Pillow,这是PIL的一个活跃开发的分支,更简略装置,支撑一切首要的操作体系,并支撑Python3。该库包含根本的图画处理功用,包含点操作、运用一组内置卷积核进行过滤和色彩空间转化。

资源

文档:https://pillow.readthedocs.io/en/3.1.x/index.html供给了装置阐明以及库中每个模块的示例。

运用

在Pillow中运用ImageFilter增强图画:

5. OpenCV-Python

OpenCV(开放源码核算机视觉库)是最广泛运用的核算机视觉运用程序库之一 *OpenCV- python *是OpenCV的python API。OpenCV-Python不只速度快,由于后台由用C/ c++编写的代码组标签11成,并且易于编码和布置(由于前台有Python包装器)。这使得它成为履行核算密集型核算机视觉程序的一个很好的挑选。

资源

OpenCV2-Python-Guide:https://github.com/abidrahmank/OpenCV2-Python-Tutorials让运用OpenCV-Python变得很简略。

运用

下面的比如展现了OpenCV-Python在Image blend中运用金字塔创立一个名为'Orapple'的新生果。

6. SimpleCV

SimpleCV也是一个用于构建核算机视觉运用程序的开源结构。有了它,你能够拜访几个高性能的核算机视觉库,如OpenCV,而不用首要了解位深度、文件格局、色彩空间等。学习曲线大巨细于OpenCV,正如他们的标语所说:让核算机视觉变得简略”。一些支撑SimpleCV的观念是:

  • 即便是初学者也能够编写简略的机器视觉测验
  • 摄像头、视频文件标签1、图画和视频流都是可互操作的

资源

官方的文档非标签20常简略了解,并且有很多的比如和用例能够遵从。

运用

7. Mahotas

Mahotas是另一个用于Python的核算机视觉和图画处理库。它包含传统的图画处理功用,如滤波和形态学操作,以及更现代的核算机视觉功用,用于特征核算,包含爱好点检测和部分描述符。该接口是用Python编写的,适合于快速开发,可是算法是用c标签11++完成的,并且针对速度进行了调优。Mahotas库速度快,代码简练,乃至具有最小的依赖性。阅览他们的官方论文以取得更多的了解。

资源

官方文档包含装置阐明、示例乃至一些教程,能够协助你轻松地开始运用。

运用

Mahotas库依赖于运用简略10个Python图画处理东西,十分全了的代码来完成使命。关于“查找Wally''的问题,Mahotas做得很好,并且只需要最少的代码。这是源代码。

8. SimpleITK

ITK或Insight Segmentation and Registration Tool标签19kit是一个开源的跨渠道体系,为开发人员供给了一套广标签11泛的图画剖析软件东西。其间,SimpleITK是构建在ITK之上的一个简化层,旨在促进其在快速原型规划、教育和解说言语中的运用。Simp标签5leITK是一个图画剖析东西包,包含很多支撑一般过滤操作、图画切割和注册的组件。SimpleITK自身是用c++编写的,可是能够用于包含Python在内的许多编程言语。

资源

供给了很多Jup标签14yter Notebooks,用来阐明SimpleITK用于教育和研讨活动。这些Notebooks演示了运用SimpleITK运用Python和R编程言语进行交互式图画剖析。

运用

下面的动画是用SimpleITK和Python创立的精确的CT/MR挂号进程的可视化。阅览源代码在此处:https://github.com/insightsoftwareassocitium/simpleitk-note10个Python图画处理东西,十分全了books/blob/master/ties/intro_anim.py。

9. pgmagick

pgmagick是Graphics10个Python图画处理东西,十分全了Magick库的一个根据python的包装器。图画处理体系有时被称为图画处理的瑞士军刀。它供给了一个强健而高效的东西和库调集,支撑以88种首要格局(包含重要格局,如DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF)读取、写入和操作图画。

资源

有一个专门用于PgMagick的Github Repository,其间有装置和需求阐明。还有一个关于这个主题的具体user guid。

运用

运用pgmagick能够履行的图画处理活动很少:

图画缩放:

边际提取:

10. Pycairo

Pycairo是cairo图形库的一组python绑定。Cairo是一个用于制作矢量图形的2D图形库。矢量图形很风趣,由于它们在调整巨细或转化时不会失掉清晰度。Pycairo是cairo的一组绑定,可用于从Python调用cairo指令。

资源

Pycairo GitHub repository是一个很好的资源,有关于装置和运用的具体阐明。还有一个入门攻略,其间有一个关于Pycairo的简略教程。

运用

运用Pycairo制作线条、根本形标签1状和径向梯度

总结

这些是Python中一些有用且免费的图画处理库。有些是众所周知的,有些或许对你来说是新的。能够试着多了解一下。

英文原文:https标签1://towardsdatascience.com/image-manipulation-tools-for-python-6eb0908ed61f

请长按或扫描二维码重视本大众号

Write a Comment

电子邮件地址不会被公开。 必填项已用 *标注