写点什么

随便讲讲 Python 图像处理库 PIL 的使用

用户头像
Regan Yue
关注
发布于: 刚刚

随便讲讲 Python 图像处理库 PIL 的使用

如何下载安装 PIL

我们可以使用 pip 来安装,但是需要注意的是如果输入pip install PIL的话会报错:


ERROR: Could not find a version that satisfies the requirement PIL (from versions: none)
ERROR: No matching distribution found for PIL
复制代码


这是因为 PIL 是只支持 Python2.x 的,所以我们使用 Python3 的小伙伴只能使用 pillow,pillow 可以说是 Python3 的 PIL,功能、用法都差不太多。

为什么会出现 Piilow?

  1. PIL 只支持 Python2.

  2. PIL 不兼容 setuptools.

  3. PIL 更新速度令人难以忍受,一年只有两次更新。

PIL 多个模块介绍

1. Image

Image 是 PIL 中最重要的模块之一,任何一张图片都可以使用 Image 对象来表示。


from PIL import Imageim = Image.open("pic.jpg")
复制代码


这里要注意在使用交互式处理图片文件时,应该使用文件的全路径,如果运行 py 文件,还是建议采用相对路径。


我们可以使用 Image 类的一些属性来查看图片文件的一些信息:


im = Image.open("eyecatch.jpg")print(im.format,im.size,im.mode)
复制代码


输出结果:


JPEG (1200, 630) RGB
复制代码


这个 Image.format 是用来标识图片的格式或来源,如果图片并不是通过读取文件得到的,那么值就是 None。这个 Image.mode 就是图片的色彩模式,有三种色彩模式,一种是“L”:灰度图片,一种是“RGB”:真彩图片,最后一种是“CMYK”,是出版图片。至于 Image.size 它是显示图片的高和宽的,其代表高多少像素,宽多少像素,打印该属性得到的是一个二元元组。


我们还可以利用 Image 的一些方法来进行图像转换和保存。


from PIL import Imageim = Image.open("eyecatch.jpg")im.thumbnail((128,128))im.save("EYECATCH.jpg")
复制代码


这里是创建图片的略缩图。尺寸为 128*128。


然后调用 save 方法保存图片。


也可以使用 convert(mode)来转换图片到新的模式。


可以使用Image.sizeImage.rotate来调整图像的大小和进行旋转图片。

2. ImageFilter

我们可以使用ImageFilter来过滤图像,比如活动一张图片的轮廓效果,我们可以这样:


# -*- coding: utf-8 -*-from PIL import Imagefrom PIL import ImageFilterim = Image.open("google-chrome-eyecatch.jpg")om = im.filter(ImageFilter.CONTOUR())om.save("bd.jpg")
复制代码



还有很多同 ImageFilter.CONTOUR()的模式,大家可以试一试。


ImageFilter.BLUR 让图片产生模糊效果。


ImageFilter.DETAIL 让图片有细节效果。


ImageFilter.EDGE_ENHANCE 让图片的边界有加强效果。


ImageFilter.SHARPEN 产生图片锐化效果


还有很多在此不赘叙了,可以查看它的文档。

3. ImageEnhance

ImageEnhance 模块拥有了更加高级的图像增强功能.


比如我们可以增强图片的对比度:


# -*- coding: utf-8 -*-from PIL import Imagefrom PIL import ImageEnhanceim = Image.open("google-chrome-eyecatch.jpg")om = ImageEnhance.Contrast(im)om.enhance(20).save("bd.jpg")
复制代码



我们还可以通过imageEnhance.Color()调整其颜色平衡,通过imageEnhance.Brightness()调整其亮度。

发布于: 刚刚阅读数: 2
用户头像

Regan Yue

关注

还未添加个人签名 2020.08.12 加入

对Go、Python、网络安全、区块链感兴趣. · 华为云云享专家 · 掘金资讯创作者

评论

发布
暂无评论
随便讲讲Python图像处理库PIL的使用