pillow 入门

image类

创建一个image类

from PIL import Image
im = Image.open("hopper.ppm")

查看类的相关信息

print(im.format, im.size, im.mode)  # format标识了图像的来源,如果不是读取文件获得的图像返回None

显示图像

im.show()

读写图像

image.open(infile).save(outfile,"JPEG")  # open()函数会只能分析文件的格式,当打开图片的时候并没有立即载入图片,而只是载入了相关信息,所以访问会很快;save的第二个参数可以指定保存图片的格式

剪切,粘贴,合并

复制一个矩形选区

box = (100, 100, 400, 400)
region = im.crop(box)

粘贴矩形选区到原图

region = region.transpose(Image.ROTATE_180)
im.paste(region, box)

分离合并颜色通道

r, g, b = im.split()
im = Image.merge("RGB", (b, g, r))

几何变换

out = im.resize((128, 128))
out = im.rotate(45) # degrees counter-clockwise

# 还可以使用transpose方法
out = im.transpose(Image.FLIP_LEFT_RIGHT)
out = im.transpose(Image.FLIP_TOP_BOTTOM)
out = im.transpose(Image.ROTATE_90)
out = im.transpose(Image.ROTATE_180)
out = im.transpose(Image.ROTATE_270)

颜色模式转换

im = Image.open("lena.ppm").convert("L")

过滤器

from PIL import ImageFilter
out = im.filter(ImageFilter.DETAIL)

点操作

选择点

# multiply each pixel by 1.2
out = im.point(lambda i: i * 1.2)

结合通道

# 将图片分成不同的通道
source = im.split()

R, G, B = 0, 1, 2

# 选择红色小于100的像素点
mask = source[R].point(lambda i: i < 100 and 255)

# process the green band
out = source[G].point(lambda i: i * 0.7)

# paste the processed band back, but only where red was < 100
source[G].paste(out, None, mask)

# build a new multiband image
im = Image.merge(im.mode, source)

增强

from PIL import ImageEnhance

enh = ImageEnhance.Contrast(im)
enh.enhance(1.3).show("30% more contrast")

多帧图像序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值