美白,磨皮,搞笑图片处理

PIL库学习总结:

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

一、PIL库简介

(一)两个主要功能:

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

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

(二)PIL拥有多个类,下面对其中的Image类、ImageFilter类、ImageEnhance类做简单介绍。

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

(一) 调用Image类:

from PIL import Image

(二) Image类关于图像读取与创建:

方法

说明

Image.open(filename)

加载图像文件

Image.new(mode,size,color)

根据给定参数创建新图像

Image.open(StringIO.StringIO(buffer))

从字符串中获取图像

Image.frombytes(mode,size,color)

根据像素点创建新图像

Image.verify()

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

 

1 from PIL import Image
2 im = Image.open('test1.jpg') # 读取图片
3 im.show() # 可视化

(三)Image类的常用属性:

方法

说明

Image.format

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

Image.mode

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

Image.size

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

Image.palette

调色板属性,返回ImagePalette类型

1 from PIL import Image
2 im = Image.open("日落.jpg")
3 print(im.format,im.mode,im.size,im.palette)

 程序执行效果如下:

(四)Image类的序列图像操作方法:

 

方法

说明

Image.seek(frame)

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

Image.tell()

返回当前帧的序号

 

(五)Image类的图像旋转和缩放方法:

方法

说明

Image.resize(size)

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

Image.rotate(angle)

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

(六)Image类的图像转换和保存方法:

方法

说明

Image.save(filename,format)

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

Image.convert(mode)

将图像转换为mode模式

Image.thumbnail(size)

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

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

(七)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类 —— 图像过滤

(一)调用ImageFilter类

from PIL import ImageFilter

(二)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

图像的锐化效果

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

(一)调用ImageEnhance类

from PIL import ImageEnhance

(二)ImageEnhance类图像增强与滤镜方法

方法

说明

ImageEnhance.enhance(factor)

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

ImageEnhance.Color(im)

调整图像的颜色平衡

ImageEnhance.Contrast(im)

调整图像的对比度

ImageEnhance.Brightness(im)

调整图像的亮度

ImageEnhance.Sharpness(im)

调整图像的锐度

1 from PIL import Image
2 from PIL import ImageEnhance
3 gz = Image.open("日落.jpg")
4 gz1 = ImageEnhance.Brightness(gz)     #选择亮度
5 gz1.enhance(2).save("日落.jpg")    #将亮度增强2倍后保存

 

 GIF的制作:

 

1 import imageio
2 savename = "Jerry.gif"
3 filenames = ["1.png","2.png","3.png","4.png","5.png","7.png","6.png","8.png","9.png","10.png"]
4 frames = []
5 for name in filenames:
6     frames.append(imageio.imread(name))
7 imageio.mimsave(savename,frames,'GIF',duration=1)

 

 

posted @ 2020-04-11 21:07  啊哼  阅读(185)  评论(0编辑  收藏  举报