PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储、显示和处理,能够处理几乎所有格式的图片。

一、PIL库简介

1. PIL库主要有2个方面的功能:

(1) 图像归档:对图像进行批处理、生产图像预览、图像格式转换等。

(2) 图像处理:图像基本处理、像素处理、颜色处理等。

2. PIL拥有多个类,此处就其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。

二、使用库函数Image类 —— 基本图像处理

1. 调用Image类

from PIL import Image

2. Image类关于图像读取与创建:

方法

说明

Image.open(filename)

加载图像文件

Image.new(mode,size,color)

根据给定参数创建新图像

Image.open(StringIO.StringIO(buffer))

从字符串中获取图像

Image.frombytes(mode,size,color)

根据像素点创建新图像

Image.verify()

对图像完整性进行检查,返回异常

3. Image类的常用属性:

方法

说明

Image.format

图像格式或来源,若图像不是从文件读取,返回None

Image.mode

图像的色彩模式,’L’为灰度模式,’RGB’为真彩色图像,’C(青)M(品红)Y(黄)K(黑)’为出版图像

Image.size

图像的宽度和高度,单位是像素(px),返回值为元组类型

Image.palette

调色板属性,返回ImagePalette类型

4.Image类的序列图像操作方法:

方法

说明

Image.seek(frame)

跳转并返回图像中的指定帧

Image.tell()

返回当前帧的序号

5.Image类的图像旋转和缩放方法:

方法

说明

Image.resize(size)

返回按size大小调整图像的副本

Image.rotate(angle)

返回按angle角度旋转图像的副本

6.Image类的图像转换和保存方法:

方法

说明

Image.save(filename,format)

将图像保存为filename文件名,format格式

Image.convert(mode)

将图像转换为mode模式

Image.thumbnail(size)

创建图像的缩略图,size是缩略图尺寸的元组

from PIL import Image
im = Image.open("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")
r,g,b = im.split()           #获取原图的RGB通道的颜色值
newb = b.point(lambda i:i*1.1) #将B通道的颜色值增强
im1 = Image.merge(im.mode,(b,g,r))
im1.thumbnail((400,254))     #创建缩略图
im1.save("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")

改变颜色,图对比如下:

7.Image类的图像像素和通道处理方法

方法

说明

Image.point(func)

根据函数func的功能对每个元素进行运算,返回图像副本

Image.split()

根据GRB图像的每个颜色通道,返回图像副本

Image.merge(mode,bands)

合成通道,其中mode为色彩,bands为新的色彩通道

Image.blend(im1,im2,alpha)

将2张图片im1和im2按照公式插值后生成新图像

公式:im1*(1.0 - alpha) + im2*alpha

三、使用库函数ImageFilter类 —— 图像过滤

1.调用ImageFilter类

from PIL import ImageFilter

2. ImageFilter类预定义图像过滤方法

方法

说明

ImageFilter.BLUR

图像的模糊效果

ImageFilter.CONTOUR

图像的轮廓效果

ImageFilter.DETAIL

图像的细节效果

ImageFilter.EDGE_ENHANCE

图像的边界加强效果

ImageFilter.EDGE_ENHANCE_MORE

图像的阈值边界加强效果

ImageFilter.EMBOSS

图像的浮雕效果

ImageFilter.FIND_EDGES

图像的边界效果

ImageFilter.SMOOTH

图像的平滑效果

ImageFilter.SMOOTH_MORE

图像的阈值平滑效果

ImageFilter.SHARPEN

图像的锐化效果

from PIL import Image
from PIL import ImageFilter
square = Image.open("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")
square1 = square.filter(ImageFilter.CONTOUR)  #选择轮廓效果
square1.save("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")

轮廓效果-素描

图对比如下:

四、使用库函数ImageEnhance类 —— 图像增强

1. 调用ImageEnhance类

from PIL import ImageEnhance

2.ImageEnhance类图像增强与滤镜方法

方法

说明

ImageEnhance.enhance(factor)

对所选属性的数值增强factor倍

ImageEnhance.Color(im)

调整图像的颜色平衡

ImageEnhance.Contrast(im)

调整图像的对比度

ImageEnhance.Brightness(im)

调整图像的亮度

ImageEnhance.Sharpness(im)

调整图像的锐度

 
from PIL import Image
from PIL import ImageEnhance
gz = Image.open("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")
gz1 = ImageEnhance.Brightness(gz)     #选择亮度
gz1.enhance(2).save("C:\\Users\\XXQ20180829\\Desktop\\2.jpg")    #将亮度增强2倍后保存

  亮度增强,曝光



GIF的制作
import imageio
savename = "D:\\猫猫.gif"
filenames = ["D:\\1.png","D:\\2.png","D:\\3.png","D:\\4.png"]
frames = []
for name in filenames:frames.append(imageio.imread(name))
imageio.mimsave(savename,frames,'GIF',duration=1)



转载于:https://www.cnblogs.com/Coylin/p/10680535.html

Python PIL 库的应用相关推荐

  1. python123九宫格输入_使用python PIL库实现简单验证码的去噪方法步骤

    字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的. 想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括: ...

  2. 使用Python PIL库实现简单验证码的去噪处理

    想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括:将彩色图片转换成灰度图.将灰度图二值化和去除噪点三个基本过程.这里仅以比较简单的验证码为例, ...

  3. 使用Python PIL库中的Image.thumbnail函数裁剪图片

    发现自己还没有头像,想着上传ubuntu系统中我很喜欢的一个背景图片来当头像,但是因为图片过大,上传失败了.那么,我们如何使用python中强大的PIL库来进行图片裁剪呢? from PIL impo ...

  4. python PIL库安装

    python编程用到图像有时会出现 decoder jpeg not available 那是因为没有装jpeg编解码库或者是python的PIL库安装不正确. 出现这种情况最好删掉PIL库(进入py ...

  5. python PIL库将图片转换成字符画

    将图片转换成文本文件查看形式 准备 源码 原始图像 生成文本文件后显示的结果 注意事项 准备 语言:python 环境:PIL库,准备好图片素材 源码 from PIL import Image as ...

  6. Python PIL库 安装

    PIL库:图像处理库 1.确保安装Python后,按Win+R打开运行输入cmd,打开终端 2.安装PIL,终端操作 pip install Pillow 如果安装出问题,就更新pip,之后再重复pi ...

  7. Python PIL库处理图片常用操作,图像识别数据增强的方法

    在博客AlexNet原理及tensorflow实现训练神经网络的时候,做了数据增强,对图片的处理采用的是PIL(Python Image Library), PIL是Python常用的图像处理库. 下 ...

  8. Python PIL库 表白/搞图 用‘我爱你‘写出你的样子

    前久看到了微博上的表白图,就是柯南那个,感觉好炫酷,有点好玩,于是这几天在CSDN上搜了搜,果真有大神分享.于是照着弄了一下,加了一丢丢自己大胆的想法. 参考博文链接:(ps:表示感谢) 博主:王一白 ...

  9. Python PIL库总结

    im = Image.open(filename)print im.size #打印width,heightname,ext = os.path.splitext(filename)#分离文件名和路径 ...

  10. python PIL库 Image.new 和 paste

    from PIL import Image import matplotlib.pyplot as plt img = Image.new("RGB",(100,100)) img ...

最新文章

  1. tmpfs 内存文件系统
  2. 创建一个storageevent事件_事件循环:微任务和宏任务
  3. openssl证书及配置
  4. python操作excel表格写入多行和多列_python多处理:写入同一excel-fi
  5. 【手势交互】9. PS Move
  6. 中国最让人脸红的节目:爆火14年的湿身诱惑,为何还没被叫停?
  7. NYOJ-部分和问题(dfs)
  8. Java开发人员可以从Spring框架中学到编程技巧
  9. 境外WiFi市场持续升温2016年或迎普及元年
  10. 软件测试前景会被ai取代吗_软件测试人员可能很快会被AI程序取代
  11. matlab中unique的作用,matlab中的unique函数详解
  12. OneNote2016 解决 OneNoteGem 插件 选项卡消失的问题
  13. java-日记本(一)
  14. 【C语言进阶】C语言实现通讯录(简易版)
  15. RFID射频卡分类及标准
  16. css子元素和后代元素选择器
  17. php添加商品和显示商品的业务逻辑
  18. MPEGl和MPEG2数字视频编码标准
  19. Python收取163邮箱--Star.hou
  20. 华大单片机DMA学习

热门文章

  1. origin数据平滑_Origin平滑曲线的使用方法
  2. PHP编写简单的注册登录页面
  3. bzoj 1984: 月下“毛景树”
  4. JS/JavaScript中的概念区分:global对象、window对象、document对象
  5. 小米6手机关于 手机重启后密码策略更改 密码错误 及wifi解决办法
  6. LC振荡器的工作原理
  7. Android实现通话呼叫转移与监听通话录音功能
  8. 厘米换算英尺英寸java
  9. bzoj4568-幸运数字
  10. 基于dragonboard 410c的智能魔镜设计(7)——UI原型设计