pillow处理图片

  ,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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: