10个Python图像处理工具

当今世界充满了数据,图像构成了这些数据的重要部分。 但是,在使用这些数字图像之前,必须对其进行处理(分析和处理),以提高其质量或提取一些可以使用的信息。

常见的图像处理任务包括显示; 基本操作,例如裁剪,翻转,旋转等; 图像分割,分类和特征提取; 图像恢复; 和图像识别。 Python作为一种科学编程语言越来越受欢迎,并且在其生态系统中免费提供了许多最新的图像处理工具,因此Python是这些类型的图像处理任务的绝佳选择。

本文介绍了10种最常用的Python库用于图像处理任务。 这些库提供了一种简单直观的方法来转换图像并理解基础数据。

1. scikit图片

scikit -image是一个与NumPy数组一起使用的开源Python软件包。 它实现了用于研究,教育和行业应用的算法和实用程序。 即使对于Python生态系统的新手来说,它也是一个相当简单明了的库。 该代码是高质量的,经过同行评审,由活跃的志愿者社区编写。

资源资源

scikit-image的文档非常详尽,包含许多示例和实际用例。

用法

该软件包作为skimage导入,大多数功能都在子模块中找到。

图像过滤:


   
   
import matplotlib. pyplot as plt  
%matplotlib inline
       
from skimage import data , filters
       
image = data. coins ( )   # ... or any other NumPy array!  
edges = filters. sobel ( image )  
plt. imshow ( edges , cmap = 'gray' )
Image filtering in scikit-image

使用match_template函数进行模板匹配:

Template matching in scikit-image

您可以在图库中找到更多示例。

2. NumPy

NumPy是Python编程的核心库之一,并提供对数组的支持。 图像本质上是包含数据点像素的标准NumPy数组。 因此,通过使用基本的NumPy操作(例如切片,遮罩和花式索引),可以修改图像的像素值。 可以使用skimage加载图像,并使用Matplotlib显示图像。

资源资源

官方文档页面

用法

使用Numpy遮罩图像:


   
   
import numpy as np
from skimage import data
import matplotlib. pyplot as plt
%matplotlib inline
   
image = data. camera ( )  
type ( image )
numpy. ndarray #Image is a NumPy array: 

mask = image < 87  
image [ mask ] = 255  
plt. imshow ( image , cmap = 'gray' )

NumPy

3.科学

SciPy是Python的另一个核心科学模块(如NumPy),可用于基本的图像处理和处理任务。 特别是,子模块scipy.ndimage (在SciPy v1.1.0中)提供在n维NumPy数组上运行的函数。 该软件包当前包含用于线性和非线性滤波,二进制形态,B样条插值和对象测量的功能。

资源资源

有关scipy.ndimage包提供的功能的完整列表,请参阅文档

用法

使用SciPy使用高斯滤波器进行模糊处理:


   
   
from scipy import misc , ndimage
   
face = misc. face ( )  
blurred_face = ndimage. gaussian_filter ( face , sigma = 3 )  
very_blurred = ndimage. gaussian_filter ( face , sigma = 5 )
   
#Results  
plt. imshow ( < image to be displayed > )
Using a Gaussian filter in SciPy

4. PIL /枕头

PIL (Python影像库)是Python编程语言的免费库,它增加了对打开,操作和保存许多不同图像文件格式的支持。 但是,其发展停滞不前,其最新版本是2009年。幸运的是,有一个Pillow (积极开发的PIL分支),易于安装,可以在所有主要操作系统上运行,并且支持Python3。该库包含基本映像。处理功能,包括点运算,使用一组内置的卷积内核进行过滤以及颜色空间转换。

资源资源

文档包含安装说明以及涵盖该库每个模块的示例。

用法

使用ImageFilter在枕头中增强图像:


   
   
from PIL import Image , ImageFilter  
#Read image
im = Image. open ( 'image.jpg' )
#Display image  
im. show ( )
   
from PIL import ImageEnhance  
enh = ImageEnhance. Contrast ( im )  
enh. enhance ( 1.8 ) . show ( "30% more contrast" )

5. OpenCV-Python

OpenCV (开源计算机视觉库)是计算​​机视觉应用程序中使用最广泛的库之一。 OpenCV-PythonOpenCV的Python API。 OpenCV-Python不仅速度快,因为其背景由用C / C ++编写的代码组成,而且还易于编码和部署(由于前景中的Python包装器)。 这使其成为执行计算密集型计算机视觉程序的绝佳选择。

资源资源

OpenCV2-Python指南》使您可以轻松开始使用OpenCV-Python。

用法

在OpenCV-Python中使用金字塔使用图像混合来创建“ Orapple”:

6. SimpleCV

SimpleCV是用于构建计算机视觉应用程序的另一个开源框架。 它提供了访问一些高性能计算机视觉库(例如OpenCV)的权限,而无需了解位深度,文件格式,色彩空间等。它的学习曲线明显小于OpenCV的学习曲线,并且(如其标语所示),“这使计算机视觉变得容易。” 支持SimpleCV的一些观点是:

  • 即使是初学者,也可以编写简单的机器视觉测试
  • 摄像机,视频文件,图像和视频流均可互操作

资源资源

官方文档非常容易遵循,并且包含大量示例和用例。

用法

SimpleCV

7. Mahotas

Mahotas是另一个适用于Python的计算机视觉和图像处理库。 它包含传统的图像处理功能(例如过滤和形态运算),以及用于特征计算(包括兴趣点检测和局部描述符)的更现代的计算机视觉功能。 该接口使用Python进行开发,适合于快速开发,但是算法是用C ++实现并进行了速度调整。 Mahotas的库以最少的代码甚至最小的依赖关系快速运行。 阅读其官方论文以获得更多见解。

资源资源

文档包含安装说明,示例,甚至包括一些教程,可帮助您轻松开始使用Mahotas。

用法

Mahotas库依靠简单的代码来完成工作。 例如,它用最少的代码就能很好地解决Finding Wally问题。

解决“发现沃利”问题:

8. SimpleITK

ITK (Insight细分和注册工具包)是一个“开源,跨平台系统,为开发人员提供了用于图像分析的大量软件工具。SimpleITK是构建在ITK之上的简化层,旨在促进其快速使用。原型,教育和[和]解释语言。” 它也是一个图像分析工具包,其中包含大量支持常规过滤操作,图像分割和配准的组件。 SimpleITK用C ++编写,但可用于许多编程语言,包括Python。

资源资源

有大量的Jupyter笔记本说明了SimpleITK在教育和研究活动中的使用。 这些笔记本演示了如何使用SimpleITK通过Python和R编程语言进行交互式图像分析。

用法

使用SimpleITK和Python创建的刚性CT / MR注册过程的可视化:

9. pgmagick

pgmagick是GraphicsMagick库的基于Python的包装器。 GraphicsMagick图像处理系统有时也称为图像处理的瑞士军刀。 它强大而有效的工具和库集合支持以超过88种主要格式读取,写入和处理图像,包括DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM和TIFF。

资源资源

pgmagick的GitHub存储库具有安装说明和要求。 也有详细的用户指南

用法

图像缩放:

边缘提取:

10.皮开罗

Pycairo是用于Cairo图形库的一组Python绑定。 开罗是用于绘制矢量图形的2D图形库。 矢量图形很有趣,因为它们在调整大小或变换后不会失去清晰度。 Pycairo可以从Python调用Cairo命令。

资源资源

Pycairo GitHub存储库是一个很好的资源,其中包含有关安装和使用的详细说明。 还有一个入门指南 ,其中包含有关Pycairo的简短教程。

用法

使用Pycairo绘制线条,基本形状和径向渐变:

结论

这些是Python中一些有用且免费的图像处理库。 有些是众所周知的,而另一些可能对您来说是新的。 试试看他们,以了解更多关于他们!

翻译自: https://opensource.com/article/19/3/python-image-manipulation-tools

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值