,pillow处理图片
本文介绍了Python使用Pillow进行图像处理的方法,并通过示例代码进行了详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
一、概述
PIL:Python图像库,这是Python平台上图像处理事实上的标准库。PIL非常强大,但是API非常简单易用。
由于PIL只支持Python 2.7,而且年久失修,一群志愿者基于PIL创建了一个兼容版本,命名为Pillow,它支持最新的Python 3.x,并增加了许多新功能。因此,我们可以直接安装和使用枕头。
Pillow在PIL的基础上为Python3增加了更多的功能和支持。支持PNG、JPEG、PPM、GIF、TIFF、BMP等一系列图像文件格式。我们将看到如何对图像执行各种操作,如裁剪、调整大小、向图像添加文本、旋转、灰度转换。
Ps:我喜欢OpenCV的速度和强大的图像处理功能,但是在OpenCV中使用我们自己喜欢的字体似乎不太容易(默认字体真的让人望而生畏)。
枕头的Github主页:https://github.com/python-pillow/Pillow
Pillow的文档(对应版本3 . 0 . 0):https://pillow.readthedocs.org/en/latest/handbook/index.html
1. PIL/ Pillow
PIL(Python Image Library)是一个免费的Python编程语言库,支持打开、操作和保存多种不同文件格式的图像。然而,随着2009年最后一个版本的发布,它的开发停滞了。幸运的是,有枕头,PIL的一个分支,正在积极开发,更容易安装。它可以在所有主流操作系统上运行,并支持Python3。该库包含基本的图像处理功能,包括点操作、使用一组内置卷积核的过滤和色彩空间转换。
资源
文档中有安装说明,以及涵盖库的每个模块的示例:
https://pillow . readthedocs . io/en/stable/release notes/3 . 1 . 1 . html
2. OpenCV-Python
OpenCV(开源计算机视觉库)是计算机视觉应用中使用最广泛的库之一。OpenCV-Python是OpenCV的python API。OpenCV-Python的优势不仅在于效率高,还在于其内部组件是用C/C编写的,易于编写和部署(因为前端是用Python包装的)。这使得它成为执行计算密集型计算机视觉程序的良好选择。
资源
OpenCV-Python-Guide guide可以让你更容易的使用OpenCV-Python:
https://github.com/abidrahmank/OpenCV2-Python-Tutorials
3. SimpleCV
SimpleCV也是一个用于构建计算机视觉应用程序的开源框架。有了它,可以访问几个高性能的计算机视觉库,比如OpenCV,不需要学习位深、文件格式、颜色空间等。首先。
它的学习曲线比OpenCV小得多,正如他们的广告语所说,“计算机视觉变得简单”。支持SimpleCV的一些观点是:
即使初学者也可以编写简单的机器视觉测试。
相机、视频文件、图像和视频流是可互操作的。
资源
该官方文档非常容易理解,并且有大量的示例和用例可供学习:
https://simplecv.readthedocs.io/en/latest/
安装Pillow
如果安装了Anaconda,Pillow已经可用。否则,您需要通过命令行中的pip进行安装:
$ pip安装枕头
如果权限拒绝安装失败,请添加sudo重试。
操作图像
看看最常见的图像缩放操作,只有三四行代码:
从PIL进口图片
#打开一个jpg图像文件,注意它的当前路径是:
im=Image.open(test.jpg )
#获取:的图像尺寸
w,h=im.size
打印(原始图像尺寸: %sx%s %(宽,高))
#缩放至503360
im.thumbnail((w//2,h//2))
print(将图像大小调整为: %sx%s % (w//2,h//2))
#以jpeg格式:保存缩放后的图像
im.save(thumb
nail.jpg, jpeg)
其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。
比如,模糊效果也只需几行代码:
from PIL import Image, ImageFilter
效果如下:
PIL的ImageDraw
提供了一系列绘图方法,让我们可以直接绘图。比如要生成字母验证码图片:
from PIL import Image, ImageDraw, ImageFont, ImageFilter
我们用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证码图片如下:
如果运行的时候报错:
IOError: cannot open resource
这是因为PIL无法定位到字体文件的位置,可以根据操作系统提供绝对路径,比如:
/Library/Fonts/Arial.ttf
要详细了解PIL的强大功能,请请参考Pillow官方文档:
https://pillow.readthedocs.org/
到此这篇关于Python使用Pillow进行图像处理的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。