运用PIL库 用来美白,磨皮,瘦脸等操作!
1.安装pillow库:
在cmd下,输入简单的命令: pip install pillow 即可安装pillow库。
2.PIL库的简介:
1. PIL库主要有2个方面的功能:
(1) 图像归档:对图像进行批处理、生产图像预览、图像格式转换等。
(2) 图像处理:图像基本处理、像素处理、颜色处理等。
2. PIL拥有多个类,此处就其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。
3.使用库函数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() |
对图像完整性进行检查,返回异常 |

4. Image类的常用属性
|
方法 |
说明 |
|
Image.format |
图像格式或来源,若图像不是从文件读取,返回None |
|
Image.mode |
图像的色彩模式,’L’为灰度模式,’RGB’为真彩色图像,’C(青)M(品红)Y(黄)K(黑)’为出版图像 |
|
Image.size |
图像的宽度和高度,单位是像素(px),返回值为元组类型 |
|
Image.palette |
调色板属性,返回ImagePalette类型 |

5.Image类的序列图像操作方法
|
方法 |
说明 |
|
Image.seek(frame) |
跳转并返回图像中的指定帧 |
|
Image.tell() |
返回当前帧的序号 |

6.Image类的图像旋转和缩放方法
|
方法 |
说明 |
|
Image.resize(size) |
返回按size大小调整图像的副本 |
|
Image.rotate(angle) |
返回按angle角度旋转图像的副本 |

7.Image类的图像转换和保存方法
|
方法 |
说明 |
|
Image.save(filename,format) |
将图像保存为filename文件名,format格式 |
|
Image.convert(mode) |
将图像转换为mode模式 |
|
Image.thumbnail(size) |
创建图像的缩略图,size是缩略图尺寸的元组 |
代码如下:
# -*- encoding:utf-8 -*-
''' 改变颜色 --- 颜色反转'''
from PIL import Image
nest = Image.open("D:\\靓女.jpeg")
r,g,b = nest.split() #获取原图的RGB通道的颜色值
newb = b.point(lambda i:i*1.1) #将B通道的颜色值增强
nest1 = Image.merge(nest.mode,(b,g,r))
nest1.thumbnail((400,254)) #创建缩略图
nest1.save("D:\\小狗.jpeg")
效果如下显示:
原图:
效果图:
8.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 |
4、使用库函数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 |
图像的锐化效果 |
继续用例子说明:代码如下:
# -*- encoding:utf-8 -*-
''' 轮廓效果 --- 素描 '''
from PIL import Image
from PIL import ImageFilter
square = Image.open("D:\\小车.jpg")
square1 = square.filter(ImageFilter.CONTOUR) #选择轮廓效果
square1.save("D:\\小车.jpg")
原图:

效果图片:

5、使用库函数ImageEnhance类 —— 图像增强
2.ImageEnhance类图像增强与滤镜方法
|
方法 |
说明 |
|
ImageEnhance.enhance(factor) |
对所选属性的数值增强factor倍 |
|
ImageEnhance.Color(im) |
调整图像的颜色平衡 |
|
ImageEnhance.Contrast(im) |
调整图像的对比度 |
|
ImageEnhance.Brightness(im) |
调整图像的亮度 |
|
ImageEnhance.Sharpness(im) |
调整图像的锐度 |
例子三:代码如下:
# -*- encoding:utf-8 -*-
''' 亮度增强 --- 曝光 '''
from PIL import Image
from PIL import ImageEnhance
gz = Image.open("D:\\gz.jpg")
gz1 = ImageEnhance.Brightness(gz) #选择亮度
gz1.enhance(2).save("D:\\gz1.jpg") #将亮度增强2倍后保存
原图:

效果如下:

例子4:gif图片
代码如下:
# -*- encoding:utf-8 -*-
''' 制作GIF图 '''
import imageio
savename = "D:\\my.gif"
#准备制作的图像名称
filenames = ["D:\\72.png","D:\\33.png","D:\\55.png","D:\\菜3.png","D:\\蔡徐坤2.png","D:\\表情.jpg","D:\\小狗.jpg"]
frames = []
for name in filenames:
frames.append(imageio.imread(name))
imageio.mimsave(savename,frames,'GIF',duration=1)
gif图如下:

运用PIL库 用来美白,磨皮,瘦脸等操作!的更多相关文章
- ❤️【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手❤️
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本篇重点介绍Python处理图像的标准库PIL库,处理图像真的的很方便. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎踊跃 ...
- PIL库自我学习总结及应用(美白,磨皮,搞笑图片处理)
Hello!今天我们来学习一下这个神奇的图片处理的第三方函数库——PIL库 (本blog部分图片及代码来自网络) 这是一个支持图像存储.显示和处理的函数库,它能够处理几乎所有图像格式,可以完成对图像的 ...
- opencv 美白磨皮人脸检测<转>
1. 简介 这学期的计算机视觉课,我们组的课程项目为“照片自动美化”,其中我负责的模块为人脸检测与自动磨皮.功能为:用户上传一张照片,自动检测并定位出照片中的人脸,将照片中所有的人脸进行“磨皮”处理, ...
- Python 之 使用 PIL 库做图像处理
http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html Python 之 使用 PIL 库做图像处理 1. 简介. 图像 ...
- 关于PIL库的一些概念
关于PIL库的一些概念 pil能处理的图片类型pil可以处理光栅图片(像素数据组成的的块). 通道一个图片可以包含一到多个数据通道,如果这些通道具有相同的维数和深度,Pil允许将这些通道进行叠加 模式 ...
- PIL库 (Pillow)
PIL基础 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...
- 关于python下安装PIL库遇到的问题及解决办法
关于python下安装PIL库遇到的问题及解决办法 关于python下安装PIL库遇到的问题及解决办法 :在下面这个网址下载pipllow(a replacement for PIL) www.lfd ...
- 一秒钟带你走进P图世界-----(python)PIL库的使用
python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...
- python之PIL库(Image模块)
PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...
随机推荐
- node图片资源捉取
开头先简单说明一下,因为网络资源上最多的资源就是图片,所以在这里也只简单的捉取了图片资源,至于其他的文档,音乐等我是没有试过的.所以暂时还是以图片为案例!!! Step1 首先我们需要加载我们需要的资 ...
- EMQTT本地源码搭建填坑记录
因业务需求需要本地搭建一个emqtt的消息队列服务器,根据官网提示搭建失败,具体如下 官方步骤: Erlang 安装: http://www.erlang.org/ MSYS2 安装: http:// ...
- java学习--自定义类的实例的大小比较和排序
我们知道Object类有一个equals方法,用于比较两个对象是否相等 我们只要在自定义类中重写了equals方法(若不重写就是比较两个实例的地址,相当于==)就可以用来比较该类的两个实例是否相等 问 ...
- Java读取excel数据保存入库
Java开发读取excel表格数据入库保存: List<Map<String, Object>> list = null; String filePath = filePath ...
- Spring再接触 集合注入
beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- FreeMarker案例
- MFC新建工程中目录包含中文,资源文件打开失败
※尽量不适用中文,各种未知错误,嘿嘿 此方法临时解决问题,可以使程序运行,后续是否还有错误是未知数 需要修改3处位置: 1.资源文件中.rc 右键,点击“查看代码”,找到带中文的资源ID,把中文修改掉 ...
- regex正则表达式学习
正则表达式 动机1. 处理文本成为计算机常见工作之一2. 对文本内容的搜索提取是一项比较复杂困难的工作3. 为了快速方便处理上述问题,正则表达式技术诞生,主键发展为一个被众多语言使用的独立技术 定义: ...
- css第三天
三 1.标准模式与怪异模式(针对盒子模型)与边框,填充,边界,有关 标准模式(默认):元素的总宽度 = 盒子的宽度 + 左右填充宽度 + 左右边框宽度元素的总高度 = 盒子的高度 + 上下填充高度 + ...
- 第二篇 Flask 中的 Render Redirect HttpResponse
第二篇 Flask 中的 Render Redirect HttpResponse 1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返 ...