Python PIL 库的应用
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 库的应用相关推荐
- python123九宫格输入_使用python PIL库实现简单验证码的去噪方法步骤
字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的. 想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括: ...
- 使用Python PIL库实现简单验证码的去噪处理
想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括:将彩色图片转换成灰度图.将灰度图二值化和去除噪点三个基本过程.这里仅以比较简单的验证码为例, ...
- 使用Python PIL库中的Image.thumbnail函数裁剪图片
发现自己还没有头像,想着上传ubuntu系统中我很喜欢的一个背景图片来当头像,但是因为图片过大,上传失败了.那么,我们如何使用python中强大的PIL库来进行图片裁剪呢? from PIL impo ...
- python PIL库安装
python编程用到图像有时会出现 decoder jpeg not available 那是因为没有装jpeg编解码库或者是python的PIL库安装不正确. 出现这种情况最好删掉PIL库(进入py ...
- python PIL库将图片转换成字符画
将图片转换成文本文件查看形式 准备 源码 原始图像 生成文本文件后显示的结果 注意事项 准备 语言:python 环境:PIL库,准备好图片素材 源码 from PIL import Image as ...
- Python PIL库 安装
PIL库:图像处理库 1.确保安装Python后,按Win+R打开运行输入cmd,打开终端 2.安装PIL,终端操作 pip install Pillow 如果安装出问题,就更新pip,之后再重复pi ...
- Python PIL库处理图片常用操作,图像识别数据增强的方法
在博客AlexNet原理及tensorflow实现训练神经网络的时候,做了数据增强,对图片的处理采用的是PIL(Python Image Library), PIL是Python常用的图像处理库. 下 ...
- Python PIL库 表白/搞图 用‘我爱你‘写出你的样子
前久看到了微博上的表白图,就是柯南那个,感觉好炫酷,有点好玩,于是这几天在CSDN上搜了搜,果真有大神分享.于是照着弄了一下,加了一丢丢自己大胆的想法. 参考博文链接:(ps:表示感谢) 博主:王一白 ...
- Python PIL库总结
im = Image.open(filename)print im.size #打印width,heightname,ext = os.path.splitext(filename)#分离文件名和路径 ...
- python PIL库 Image.new 和 paste
from PIL import Image import matplotlib.pyplot as plt img = Image.new("RGB",(100,100)) img ...
最新文章
- tmpfs 内存文件系统
- 创建一个storageevent事件_事件循环:微任务和宏任务
- openssl证书及配置
- python操作excel表格写入多行和多列_python多处理:写入同一excel-fi
- 【手势交互】9. PS Move
- 中国最让人脸红的节目:爆火14年的湿身诱惑,为何还没被叫停?
- NYOJ-部分和问题(dfs)
- Java开发人员可以从Spring框架中学到编程技巧
- 境外WiFi市场持续升温2016年或迎普及元年
- 软件测试前景会被ai取代吗_软件测试人员可能很快会被AI程序取代
- matlab中unique的作用,matlab中的unique函数详解
- OneNote2016 解决 OneNoteGem 插件 选项卡消失的问题
- java-日记本(一)
- 【C语言进阶】C语言实现通讯录(简易版)
- RFID射频卡分类及标准
- css子元素和后代元素选择器
- php添加商品和显示商品的业务逻辑
- MPEGl和MPEG2数字视频编码标准
- Python收取163邮箱--Star.hou
- 华大单片机DMA学习