标签:bar mic cto 简介 format lib comm mamicode duration
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)  | 
 调整图像的锐度  | 
| 
 1 
2 
3 
4 
5 
 | 
from PIL import Imagefrom PIL import ImageEnhancegz = 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)

标签:bar mic cto 简介 format lib comm mamicode duration
原文地址:https://www.cnblogs.com/loverboy88/p/10686894.html