产检,10 个 Python 图像编辑东西,begin

10 个 Python 图画修改东西

以下说到的这些 Python 东西在修改图画、操作图画底层数据方面都供给了简略直接的办法。

-- Parul Pandey

当今的国际充满了数据,而图画数据便是其间很重要的一部分。但只要经过处理和剖析,进步图画的质量,从中提取出有效地信息,才干运用到这些图画数据。

常见的图画处理操作包含显现图画,根本的图画操作,如裁剪、翻转、旋转;图画的切割、分类、特征提取;图画康复;以及图画识别等等。Python 作为一种日益风行的科学编程言语,是这些图画处理操作的最佳挑选。一同,在 Python 生态傍边也有许多能够免费运用的优送秀的图画处理东西。

下文将介绍 10 个能够用于图画处理使命的 Python 库,它们在修改图画、检查图画底层数据方面都供给了简略直接的办法。

1、scikit-image

scikit-image 是一个结合 NumPy 数组运用的开源 Python 东西,它完成了可用于研讨、教育、工业运用的算法和运用程序。即使是关于刚刚触摸 Python 生态圈的新手来说,它也是一个在运用上满足简略的库。一同它的代码质量也很高,由于它是由一个活泼产检,10 个 Python 图画修改东西,begin的志愿者社区开发的,而且经过了 同行评定(peer review)。

资源

scikit-image 的 文档 十分完善,其间包含了丰厚的用例。

示例

能够经过导入 skimage 运用,大部分的功用都能够在它的子模块中找到。

图画滤波(image f产检,10 个 Python 图画修改东西,beginiltering):

import matplotlib.pyplot as plt

%matplotlib inline

from skimage import data,filters

image = data.coins() # ... or any other NumPy array!

edge婚纱照图片s = filters.sobel(image)

plt.imshow(edges, cmap='gray')


10 个 Python 图画修改东西

Image filtering in scikit-image


运用 match_template() 办法完成 模板匹配(template matching):


Template matching in scikit-image


在 展现页面 能够看到更多相关的比如。

2、NumPy

NumPy 供给了对数组的支撑,是 Python 编程的一个中心库。图画的实质其实也是一个包含像素数据点的规范 NumPy 数组,因而能够经过一些根本的 NumPy 操作(例如切片、 掩膜(mask)、 花式索引(fancy indexing)等),就能够从像素级别对图画进行修改。经过 NumPy 数组存储的图画也能够被 skimage 加载并运用 matplotlib 显现。

资源

在 Nu产检,10 个 Python 图画修改东西,beginmPy 的 官方文档 中供给了完好的代码文档和资源列表。

示例

运用 NumPy 对图画进行 掩膜(mask)操作:

import numpy as np

from skimage import data

import matplotlib.pyplot as plt

%matplot薛之谦反击晒依据lib inline

image = data.camera()

type(image)

numpy.ndarray #Image is a NumPy a龙飘飘rray:

mask = image < 87

image[mask]=255

plt.imshow(image, cmap='gray')


NumPy


3、SciPy

像 NumPy 相同, SciPy 是 Python 的一个中心科学核算模块,也能够用于图画的根本操作和处理。尤其是 SciPy v1.1.0 中的 scipy.ndimage 子模块,它供给了在 n 维 NumPy 数组上的运转的函数。SciPy 现在还供给了 线性和非线性滤波(linear and non-linear filtering)、 二值形态学(binary morphology)、 B 样条插值(B-spline interpolation)、 目标丈量(object measurements)等方面的函数。

资源

在 官海底两万里作者方文档 中能够查阅到 scipy.ndimage 的完好函数列表。

示例

运用 SciPy 的 高斯滤波 对图画进行含糊处理:

from scipy import misc,ndimage

face = misc.face()

blurred_face = ndimage.gaussian_filter(face, sigma=3)

very_blurred = ndima污文ge.gaussian_filter(face, sigma=5)

#Results

plt.imshow()


Using a Gaussian filter in SciPy


4、PIL/Pillow

PIL (Python Imaging Library) 是一个免费 Python 编程库,它供给了对多种格局图画文件的翻开、修改、保存的支撑。但在 2009 年之后 PIL 就中止发布新版本了。走运的是,还有一个 PIL 的活跃开发的分支 Pillow ,它的装置进程比 PIL 愈加简略,支撑大部分干流的操作系统,而且还支撑 Python 3。Pillow 包含了图画的根底处理功用,包含像素点操作、运用内置卷积内核进行滤波、颜色空间转化等等。

资源

Pillow 的 官方文档 供给了 Pillow 的装置阐明自己代码库中每一个模块的示例。

示例

运用 Pillow 中的 ImageFilter 模块完成图画增强:

from PIL import Image,ImageFilter

#Read image

im = Image.open('image.jpg')

#Display image

im.sho黄天崎w()

from PIL import ImageEnhance

enh = ImageEnhance.Contrast(im)

enh.enhance(1.8).show("30% more contra伏天st")


Enhancing an image in Pillow using ImageFilter


  • 源码

5、OpenCV-Python

OpenCV(Open Source Computer Vision 库)是核算机视觉范畴最广泛运用的库产检,10 个 Python 图画修改东西,begin之一, OpenCV-Python 则是 OpenCV 的 Python API。OpenCV-Python 的运转速度很快,这归功于它运用 C/C++ 编写的后台代码,一同由于它运用了 Python 进行封装,因而调用和布置的难度也不大。这些长处让 OpenCV-Python 成为了核算密集型核算机视觉运用程序的一个不错的挑选。

资源

入门之前最好先阅览 OpenCV2-Python-Guide 这份文档。

示例

运用 OpenCV-Python 中的 金字塔交融(Pyramid Blending)将苹果和橘子交融到一同:


Image blending using Pyramids in OpenCV-Python


  • 源码

6、SimpleCV

SimpleCV 是一个开源的核算机视觉结构。它支撑包含 OpenCV 在内的一些高性能核算机视觉库,一同不需要去了解 位深度(bit depth)、文件格局、 颜色空间(color space)之类的概念,因而 SimpleCV 的学习曲线要比 OpenCV 陡峭得多,正如它的标语所说,“将核算机视觉变得更简略”。SimpleCV 的长处还有:

  • 即使是刚刚触摸核算机视觉的程序员也能够经过 SimpleCV 来实诸子门徒现一些简易的核算机视觉测验
  • 录像、视频文件、图画、视频流都在支撑范围内

资源

官方文档 简略易懂,一同也附有许多的学惯用例。

示例


SimpleCV


7、Mahotas

Mahotas 是另一个 Python 图画处理和核算机视觉库。在图画处理方面,它支撑滤波和形态学相关的操作;在核算机视觉方面,它也支撑 特征核算(feature computation)、 爱好点检测(interest point detection)、 部分描述符(local descriptors)等功用。Mahotas 的接口运用了 Python 进行编写,因而合适快速开发,而算法运用 C++ 完成,并针对速度进行了优化。Mahotas 尽可能做到代码量少和依靠项少,因而它的kingtex运算速度十分快。可克里斯保罗以参阅 官方文档 了解更多龙珠超世界2具体信息。

资源

文档 包含了装置介绍、示例以及一些 Mahotas 的入门教程。

示例

Mahotas 力求运用少数的代码来完成功用。例如这个 Finding Wally 游戏:


Finding Wally prob产检,10 个 Python 图画修改东西,beginlem in Mahotas


Finding Wally problem in Mahotas


  • 源码

8、SimpleI歌唱软件TK

ITK (Insight Segmentation and Registration Toolkit)是一个为开发者供给普适性图画剖析功用的开源、跨渠道东西套件, SimpleITK 则是根据 ITK 构建出来的一个简化层,旨在促进 ITK 在快速原型规划、教育、解说言语中的运用。SimpleITK 作为一个图画剖析东西包,它也带有 许多的组件 春眠不觉晓,能够支撑惯例的滤波、图画切割、 图画如来佛祖配准(registration)功用。虽然 SimpleITK 运用 C++ 编写,但它也支撑包含 Python 在内的大部分编程言语。

资源

有许多 Jupyter Notebooks 用例能够展现 SimpleITK 在教育和科研范畴中的运用,经过这些用例能够看到怎么运用 Python 和 R 运用 SimpleITK 来完成交互式图画剖析。

示例

运用 Python + SimpleITK 完成的 CT/MR 图画配产检,10 个 Python 图画修改东西,begin准进程:


SimpleITK animation


  • 源码

9、pgmagick

pgmagick 是运用 Python 封装的 GraphicsMagick 库。 GraphicsMagick 通常被认为是图画处理界的瑞士军刀,由于它强壮而又高效的东西包支撑对多达 88 种干流格局图画文件的读写操作,包含 DP龙与虎X、GIF、JPEG、JPEG-2000、PNG、PDF、PNM、TIFF 等等。

资源

pgmagick 的 GitHub 库房 中有相关的装置阐明、依靠列表,以及具体的 运用指引 。

示例

图画缩放:


Image scaling in pg凡克猫童装magick


  • 源码

边际提取:


Edge extraction in pgmagick


  • 源码

10、Pycairo

Cairo 是一个用于制作矢量图的二维图形库,而 Pycairo 是用于 Cairo 的一组 Python 绑定。矢量图的长处在于做巨细缩放的进程中不会丢掉图画的明晰韩国电影妈妈度。运用 Pycairo 能够在 Python 中调用 Cairo 的相关指令。

资源

Pycairo 的 GitHub 库房 供给了关于装置和运用的具体阐明,以及一份扼要介绍 Pycairo 的 入门攻略 。

示例

运用 Pycairo 制作线段、根本图形、 径向突变(radial gr产检,10 个 Python 图画修改东西,beginadients):


Pycairo


  • 源码

总结

以上便是 Python 中的一些有用的图画处理库,不管你有没有听说过、有没有运用过,都值得试用一下并了解它们。


via: https://opensource.com/article/19/3/python-image-manipulation-tools

作者: Parul Pandey 选题: lujun9972 译者: HankChow 校正: wxy

本文由 LCTT 原创编译, Linux西南交大我国 荣誉推出

点击“了解更多”可拜访文内链接