Python PIL学习笔记(一)

1、图片的读取和格式保存python

一、读取静态图spa

import Image, os
im = Image.open('D:\\1.jpg')    #打开图片
im.save('new.jpg')    #图像对象的保存
print im.size, im.format, im.mode    #查看图片的各类属性

二、读取动态图code

PIL默认载入图像的第一帧,能够利用seek和tell方法在各个帧之间移动。orm

im.seek(1)    # skip to the second frame
try:
    while 1:
        im.seek(im.tell() + 1)    #当前帧 + 1
except EOFError:
    pass

2、图片的简单操做对象

一、切分图片

box = (100, 100, 200, 200)    #正方形对角点
region = im.crop(box)    #在im中找到box大小的图片,并赋给新的图片对象

二、反转、粘贴操做ip

region = region.transpose(Image.ROTATE_180)    #反转
im.paste(region, box)    #将region放到im的box位置

三、调整大小,旋转get

out_size = img.resize((128, 128))#resize成128*128像素大小。
out_rotate = img.rotate(45)#逆时针旋转45度

四、RGB
it

每个RGB都是由三个通道的灰度图叠加的,因此pil提供了将这三个通道分离的方法。io

这里若是只用split()会出现问题,应该先得到数据

im.getdata()
r,g,b = im.split()    #分离三个通道

#这里能够看一下分别的状况
r.show()
g.show()
b.show()

#融合三个通道
out_merge = Image.merge("RGB", (r, g, b))    #这里能够互换r, g, b

五、转化灰度图像

out_L = im.convert('L')

六、融合图片

将两张图片大小相同的图片融合

Image.blend(im1, im2, alpha)    alpha参数大小决定im1----->im2,0时为im1,1时为im2。

im1 = Image.open('1.jpg')
im2 = Image.open('jpg')
#这里能够用上面的box切分图片或者用resize转换为相同大小
out = Image.blend(im1, im2, 0.5)


3、经常使用滤镜

一、增强滤镜

import ImageFilter
out_Detail = im.filter(ImageFilter.DETAIL)

或者直接用lambda表达式,增大像素点亮度

out_point = im.point(lambda i : i * 1.2)

还能够用ImageEnhance模块

import ImageEnhance
en = ImageEnhance.Contrast(im)
out = en.enhance(1.5)

二、边缘化滤镜

im = im.filter(ImageFilter.EDGE_ENHANCE)

三、转化灰度图像

im = im.convert("L")
相关文章
相关标签/搜索