前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自从我会了Python中的PIL,发现了其实超级简单

自从我会了Python中的PIL,发现了其实超级简单

作者头像
润森
发布2020-04-27 10:30:31
7010
发布2020-04-27 10:30:31
举报
文章被收录于专栏:毛利学Python毛利学Python

PIL全称是Python Image Library,顾名思义,是用来做图像处理的。

我们可以用PIL干嘛呢?

第一,可以将两张图片合并在一起

Image.blend(image1,image2,alpha)

合成公式为:out=image1(1.0- alpha)+image2alpha

代码语言:javascript
复制
from PIL import Image
im1 = Image.open("1.jpg")
im2 = Image.open("2.jpg")
print(im1.mode,im1.size)  # RGB (500, 300)
print(im2.mode,im2.size)   # RGB (500, 300)
im = Image.blend(im1, im2, 0.5)
im.save('3.jpg')

这是1.jpg

这是2.jpg

这是3.jpg

合成后的图片

Composite

当然除了上面的方法还可以使用Composite类 Image.composite(image1,image2, mask) ⇒ image 复合类使用给定的两张图像及mask图像作为透明度,插值出一张新的图像。变量mask图像的模式可以为“1”,“L”或者“RGBA”。所有图像必须有相同的尺寸。

看一波源码,如下图所示

一波代码开干

代码语言:javascript
复制
from PIL import Image
im1 = Image.open("1.jpg")
im2 = Image.open("2.jpg")
r,g,b = im1.split()
print(b.mode)
print(im1.mode,im1.size)
print(im2.mode,im2.size)
im = Image.composite(im1,im2,mask=b)
im.save('4.jpg')

这是4.jpg

Filter类

im.filter(filter) ⇒ image

返回一个使用给定滤波器处理过的图像的拷贝。在该模块中,预先定义了很多增强滤波器,可以通过filter()函数使用,预定义滤波器包括:

  • BLUR
  • CONTOUR
  • DETAIL
  • EDGE_ENHANCE
  • EDGE_ENHANCE_MORE
  • EMBOSS
  • FIND_EDGES
  • SMOOTH

再看一波源码,如下图所示

一波代码开干

代码语言:javascript
复制
from PIL import Image
from PIL import ImageFilter                         ## 调取ImageFilter
img = Image.open("1.jpg")
blu = img.filter(ImageFilter.BLUR)                ##均值滤波
con = img.filter(ImageFilter.CONTOUR)             ##找轮廓
edge = img.filter(ImageFilter.FIND_EDGES)         ##边缘检测
blu.save('均值滤波.jpg')
con.save('找轮廓.jpg')
edge.save('边缘检测.jpg')

这是均值滤波.jpg

这是找轮廓.jpg

这是边缘检测.jpg

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Image.blend(image1,image2,alpha)
  • Composite
  • Filter类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档