博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10个Python图像处理工具
阅读量:2522 次
发布时间:2019-05-11

本文共 4913 字,大约阅读时间需要 16 分钟。

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

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

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

1. scikit图片

是一个与数组一起使用的开源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

使用函数进行模板匹配:

Template matching in scikit-image

您可以在找到更多示例。

2. 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.科学

是Python的另一个核心科学模块(如NumPy),可用于基本的图像处理和处理任务。 特别是,子模块 (在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年。幸运的是,有一个 (积极开发的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"
)
Enhancing an image in Pillow using ImageFilter

5. OpenCV-Python

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

资源资源

《 使您可以轻松开始使用OpenCV-Python。

用法

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

Image blending using Pyramids in OpenCV-Python

6. SimpleCV

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

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

资源资源

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

用法

SimpleCV

7. Mahotas

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

资源资源

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

用法

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

解决“发现沃利”问题:

Finding Wally problem in Mahotas

Finding Wally problem in Mahotas

8. SimpleITK

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

资源资源

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

用法

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

SimpleITK animation

9. pgmagick

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

资源资源

pgmagick的具有安装说明和要求。 也有详细的 。

用法

图像缩放:

Image scaling in pgmagick

边缘提取:

Edge extraction in pgmagick

10.皮开罗

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

资源资源

Pycairo 是一个很好的资源,其中包含有关安装和使用的详细说明。 还有一个 ,其中包含有关Pycairo的简短教程。

用法

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

Pycairo

结论

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

翻译自:

转载地址:http://uxbzd.baihongyu.com/

你可能感兴趣的文章
BZOJ.4738.[清华集训2016]汽水(点分治 分数规划)
查看>>
testNG框架的四种传参方式
查看>>
stark组件开发之URL别名的设置
查看>>
npm总结
查看>>
css样式margin padding border
查看>>
vim笔记
查看>>
Leetcode: Reorder List && Summary: Reverse a LinkedList
查看>>
M面经prepare: Shuffle a deck
查看>>
Map (就一个json.jar)
查看>>
FPS检测
查看>>
const string vs static readonly string
查看>>
http://www.jdon.com/mda/oo_relation.html
查看>>
2. 两数相加 golang
查看>>
Winform窗体设计工具源码
查看>>
Devexpress dll搜集
查看>>
字典和列表的删除问题, 深浅拷贝
查看>>
文件操作
查看>>
java中的反射整理
查看>>
Linux 基础入门第一次实验笔记
查看>>
为什么<b></b>不推荐使用
查看>>