美白、磨皮、搞笑图片处理以及GIF的分解

  Image模块

一、open

函数:Image.open(file)

Image.open(file,mode)

如果变量mode被设置,那必须是“r”,用户可以使用一个字符串(表示文件名称的字符串)或者文件对象作为变量file的值。文件对象必须实现read(),seek()和tell()方法,并且以二进制模式打开。

 二、new

函数:Image.new(mode,size)

Image.new(mode,size,color)

new方法用于使用给定的变量mode(模式)和size(尺寸)生成新的图像。

1)关于mode:'RGB'是指的RGB彩色图像,‘L’是指的灰度图像。

2)关于color:对于单通道图像,变量color只给定一个值;对于多通道图像,变量color给定一个元组(每个通道对应一个值)。用户也可以用颜色的名称,比如给变量color赋值为“red”。如果没有对变量color赋值,图像内容将会被全部赋值为0(图像即为黑色)。如果变量color是空,图像将不会被初始化,即图像的内容全为0。

                                                                    效果图                                                                    效果图

     

 

 

                   

三、save

Image.save(filename,format)

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

四、format\mode\size\palette

函数

描述

Image.format 标识图像格式或来源,如果图像不是从文件读取,值是None
Image.mode 图像的色彩模式,"L"灰度图像、“RGB”真彩色图像和"CMYK"出版图像
Image.size 图像宽度和高度,单位是像素(px),返回值是二元元组(tuple)
Image.palette 颜色调色板表格。如果图像的模式是“P”,则返回ImagePalette类型,否则,将为None

    

 

 

 

 

 

 

 

 

 

补充(常见modes描述)

modes 描述
1 1位像素,黑和白,存成8位的像素
8位像素,黑白
P 8位像素,使用调色板映射到任何其他模式
RGB 3 *8位像素,真彩
RGBA 4*8位像素,真彩+透明通道
CMYK 4*8位像素,颜色隔离
YCbCr 3*8位像素,彩色视频格式
I 32位整型像素
F 32位浮点型像素

                    

四、convert

函数:Image.convert(mode)

返回图像转换后的副本 

如果原始图像是调色板图像,这个函数通过调色板转换像素。忽略mode参数,会自动选择一个模式,以保证所有的图像信息和调色板信息在没有调色板的时候也能表示出来。

在PIL中,从模式“RGB”转换为“L”模式是按照下面的公式转换的:

L = R * 0.299 + G * 0.587+ B * 0.114

下面我主要尝试了9中mode类中的1和L:

   原图       模式‘1’为二值图像 

模式L为灰色图像                                        

五、split

函数:Image.split()

返回当前图像各个通道组成的一个元组。例如,分离一个“RGB”图像将产生三个新的图像,分别对应原始图像的每个通道(红,绿,蓝)。

      result~

  

六、merge

函数:Image.merge(mode,bands)

合并类使用一些单通道图像,创建一个新的图像。变量bands为一个图像的元组或者列表,每个通道的模式由变量mode描述。所有通道必须有相同的尺寸。

 

                    原图1                                                 原图2                                               效果图

七、blend

函数:Image.blend(image1,image2,alpha)

使用给定的两张图像及透明度变量alpha,插值出一张新的图像。这两张图像必须有一样的尺寸和模式
合成公式为:out = image1 (1.0 - alpha) + image2  alpha
若变量alpha为0.0,返回第一张图像的拷贝。若变量alpha为1.0,将返回第二张图像的拷贝。对变量alpha的值无限制
   效果图
八、旋转和缩放

 

函数 描述
Image.resize(size) 按size大小调整图像,生成副本
Image.rotate(angle) 按angle角度旋转角度,生成副本
Image.thumbnail(size) 创建图像的略缩图,size是缩略图尺寸的二元组

 

 

 

 

 
 
 
九、ImageFilter类和ImageEnhance类
 
函数 描述
ImageFilter.BLUR 图像的模糊效果
ImageFilter.CONTOUR 图像的轮廓效果
ImageFilter.DERAIL 图像的细节效果
ImageFilter.EDGE_ENHANCE 图像的边界加强效果
ImageFilter.EDGE_ENHANCE_MORE 图像的或值边界加强效果
ImageFilter.EMBOSS 图像的浮雕效果
ImageFilter.FIND_EDGES 图像的边界效果
ImageFilter.SMOOTH 图像的平滑效果
ImageFilter.SMOOTH_MORE 图像的或值平滑效果
ImageFilter.SHARPEN 图像的锐化效果

     

 

 

 

 

 

 

 

 

 

                            原图                                                                 (轮廓)  效果图

 

                              原图                                                                    (浮雕)效果图

十、GIF图像提取处理

函数 描述
im.seek() 在给定的文件序列中查找指定的帧
im.tell() 返回当前帧所处位置

 

 

 

 

这是原图~

result~

十一、图片的过滤和增强

ImageEnhance类提供了更高级的图像增强需求,他提供调整色彩度、亮度、对比度、锐化等功能。

 

 函数  描述
ImageEnhance.enhance(factor)   对选择属性的数值增强factor倍
 ImageEnhance.Color(im) 调整图像的颜色平衡 
 ImageEnhance.Contrast(im) 调整图像的对比度 
 ImageEnhance.Brightness(im) 调整图像的亮度 
 ImageEnhance.Sharpness(im)

调整图像的锐度

 

 

 

 

 

 

 

 

(增强亮度效果)

 (增强对比效果)

 

(增强亮度效果)

posted @ 2020-04-08 23:38  Ni__23  阅读(284)  评论(0)    收藏  举报