PIL库学习总结与运用PIL库对图片美白锐化的处理

Python Imaging Library,简称PIL

python图像处理库,这个库支持多种文件格式,并提供了强大的图像处理和图形处理能力。

下面是我的学习笔记

一、PIL库Image类解析

(1)Image图片读取和创建方法

方法

描述

Image.open(filename)

根据参数加载图像文件

Image.new(mode, size, color)

根据给定参数创建一个新的图像

Image.open(StringIO.StringIO(buffer))

从字符串中获取图像

Image.frombytes(mode, size, data)

根据像素点data创建图像

Image.verify()

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

 例如要加载一个图片

from PIL import Image
im = Image.open("D:\\pycodes\\birdnest.jpg")

(2)Image类4个处理图片的常用属性

属性

描述

Image.format

标识图像格式或来源,如果图像不是从文件读取,值是None

Image.mode

图像的色彩模式,"L"灰度图像、"RGB"真彩色图像、"CMYK"出版图像

Image.size

图像宽度和高度,单位是像素(px),返回值是二元元组(tuple)

Image.palette

调色板属性,返回一个ImagePalette类型

(3)Image类的图像保存和处理

方法

描述

Image.save(filename, format)

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

Image.convert(mode)

使用不同的参数,转换图像为新的模式

Image.thumbnail(size)

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

(4)图像的过滤和增强

方法表示

描述

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

图像的锐化效果

二、PIL库的运用(#图片均来自百度搜索)

(1)对图片生成略缩图

from PIL import Image

im = Image.open("D:\\pic.jpg")

im.thumbnail((128, 128))

im.save("D:\\picS.jpg","JPEG")

对比图:

 

(2)改变图片颜色

im = Image.open('D:\\pic.jpg') #打开文件
r, g, b = im.split() #获得RGB通道数据
newg = g.point(lambda i: i * 0.9) # 将G通道颜色值变为原来的0.9倍
newb = b.point(lambda i: i < 100) # 选择B通道值低于100的像素点
om = Image.merge(im.mode, (r, newg, newb)) # 将3个通道合形成新图像
om.save('D:\\picA.jpg') #输出图片

对比图:

 

 (3)改变图片轮廓

from PIL import Image

from PIL import ImageFilter

im = Image.open("D:\\gsd.jpg")

om = im.filter(ImageFilter.CONTOUR)

om.save("D:\\GSD.jpg")

对比图:

 

 

 

 

 

(4)图片的浮雕操作

from PIL import Image

from PIL import ImageFilter

im = Image.open("D:\\gsd.jpg")

om = im.filter(ImageFilter.EMBOSS)

om.save("D:\\GSD1.jpg")

对比图:

 

 

(5)GIF图像的每一帧提取

from PIL import Image
im = Image.open('D:\\n.gif')      # 读入一个GIF文件
try:
    im.save('D:\\nn{:02d}.png'.format(im.tell()))
    while True:
        im.seek(im.tell()+1)
        im.save('D:\\nn{:02d}.png'.format(im.tell()))
except:
    print("处理结束")

 

 

 

三、图片的对比度增强,锐化,美白

(1)图片的对比度增强

from PIL import Image
from PIL import ImageEnhance
im = Image.open('D:\\c.jpg')
om = ImageEnhance.Contrast(im)
om.enhance(3).save('D:\\cc.jpg')

 

 

(2)图像的锐化

 

 

 

from PIL import Image
from PIL import ImageEnhance
im = Image.open('D:\\n.jpg')
om = ImageEnhance.Sharpness(im)
om.enhance(5).save('D:\\nn.jpg')

 

 

(3)图像的美白

from PIL import Image
from PIL import ImageEnhance
im = Image.open('D:\\c.jpg')
om = ImageEnhance.Brightness(im)
om.enhance(1.4).save('D:\\ccc.jpg')

 

 

 

 

posted @ 2020-04-15 11:08  软锰矿  阅读(916)  评论(0编辑  收藏  举报