10种常用的Python图像操作包(上)

一些常用的 Python 库概览,提供了一种简单直观的方式来对图像进行转换。

引言

当今世界充满了数据,而图像是这些数据的重要组成部分。然而,要对其进行任何处理,这些图像需要被处理。图像处理主要是分析和操作数字图像,旨在提高其质量或从中提取一些信息,然后可以利用这些信息。

图像处理中的典型任务包括显示图像、基本操作如裁剪、翻转、旋转等,图像分割、分类和特征提取,图像恢复和图像识别。对于这些图像处理任务,Python 成为了一个合适的选择。这是由于它作为科学编程语言的不断增长的流行性,以及其生态系统中许多先进技术的图像处理工具的免费可用性。

让我们看一些常用于图像处理任务的 Python 库。

1. scikit-image

scikit-image 是一个开源的 Python 包,与 numpy` 数组一起工作。它实现了在研究、教育和工业应用中使用的算法和实用工具。即使对于那些对 Python 生态系统尚不熟悉的人来说,这是一个相对简单的库。这些代码质量很高且经过同行评审,是由活跃的志愿者社区编写的。

资源

它有很好的文档,附带许多示例和实际用例。阅读文档 here

使用

该包被导入为 skimage,大多数功能都在子模块中。一些 scikit-image 的示例包括:

  • 图像过滤
import matplotlib.pyplot as plt   
%matplotlib inlinefrom skimage import data,filtersimage = data.coins()  
... 或其他任何 NumPy 数组!  
edges = filters.sobel(image)  
plt.imshow(edges, cmap='gray')

Numpy

Numpy 是 Python 编程中的核心库之一,提供对数组的支持。图像本质上是一个包含像素数据点的标准 Numpy 数组。因此,通过使用基本的 NumPy 操作,如切片、掩码和高级索引,我们可以修改图像的像素值。图像可以使用 skimage 加载,并使用 matplotlib 显示。

资源

有关资源和文档的完整列表可以在 Numpy 的 official documentation page 上找到。

使用

使用 Numpy 对图像进行掩码处理。


import numpy as np  
from skimage import data  
import matplotlib.pyplot as plt   
%matplotlib inlineimage = data.camera()  
type(image)**numpy.ndarray #Image is a numpy array**mask = image < 87  
image[mask]=255  
plt.imshow(image, cmap='gray')

Scipy

scipy 是另一个类似于 Numpy 的 Python 核心科学模块,可用于基本的图像处理和处理任务。特别是子模块 scipy.ndimage` 提供了在 n 维度 NumPy 数组上操作的函数。该包目前包括线性和非线性滤波函数、二进制形态学、B 样条插值和对象测量等。

资源

有关 scipy.ndimage 包提供的函数的完整列表,请参阅文档 here

使用

使用 SciPy 进行模糊处理,使用 Gaussian filter

from scipy import misc,ndimageface = 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>)

PIL/ Pillow

PIL(Python Imaging Library)是 Python 编程语言的免费库,可支持打开、操作和保存许多不同的图像文件格式。然而,其发展已经停滞不前,在2009年发布了最后一个版本。幸运的是,有一个名为 Pillow 的活跃开发的 PIL 分支,更易于安装,可以运行在所有主要操作系统上,并支持 Python 3。该库包含基本的图像处理功能,包括点操作、使用一组内置卷积核进行滤波以及颜色空间转换等。

资源

documentation 包含安装说明和涵盖库的每个模块的示例。

使用

使用 Pillow 对图像进行增强,使用 ImageFilter:

**from** PIL **import** Image**,** ImageFilter  
_#读取图像_  
im = Image.open**(** 'image.jpg' **)**  
_#显示图像_  
im.show**()**from PIL import ImageEnhance  
enh = ImageEnhance.Contrast(im)  
enh.enhance(1.8).show("30% more contrast")

OpenCV-Python

OpenCV(Open Source Computer Vision Library)是最广泛使用的用于计算机视觉应

用的库之一。OpenCV-Python 是 OpenCV 的 Python API。OpenCV-Python 不仅因为背景由 C/C++ 编写的代码而快速,而且由于前台中的 Python 封装器,易于编码和部署。这使得它成为执行计算密集型计算机视觉程序的良好选择。

资源

OpenCV2-Python-Guide 可以让您轻松开始使用 OpenCV-Python。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值