PIL全称是Python Image Library,顾名思义,是用来做图像处理的。 我们可以用PIL干嘛呢? 第一,可以将两张图片合并在一起
Image.blend(image1,image2,alpha)
合成公式为:out=image1(1.0- alpha)+image2alpha
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测试数据posite(image1,image2, mask) ? image 复合类使用给定的两张图像及mask图像作为透明度,插值出一张新的图像。变量mask图像的模式可以为“1”,“L”或者“RGBA”。所有图像必须有相同的尺寸。 看一波源码,如下图所示
一波代码开干
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测试数据posite(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 再看一波源码,如下图所示一波代码开干
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
赞 赏 作 者
一个“软实力”,“硬技术”同步成长的公众号
查看更多关于自从我会了Python中的PIL,发现了其实超级简单的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did163309