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")