超全的Python图像处理讲解,小白也能懂( 三 )

为了考虑小新的感受,下面不再用娜娜子作为素材 。我选取了一张钢铁侠的图片,运行结果如下:

超全的Python图像处理讲解,小白也能懂

文章插图
 
希望各位读者不要误会,他俩真没说你帅,他俩只说笔者一个人帅 。
2.2、其它滤镜除了高斯模糊,ImageFilter中还提供了许多其它滤镜:
超全的Python图像处理讲解,小白也能懂

文章插图
 
笔者用一张美女图片,测试了上面几个滤镜的效果,发现9张图是看起来是完全一样的 。虽然完全一样,但是笔者还是打算将这次测试的结果作为我慈善事业的一部分,分享给各位读者 。
超全的Python图像处理讲解,小白也能懂

文章插图
 
其中1为高斯模糊,2-9分别为表格中的8个滤镜 。
三、ImageChops模块(图像合成)ImageChops模块中,提供了很多图像合成的方法 。这些方法是通过计算通道中像素值来实现的,不同的方法有不同的计算方式 。
3.1、加法运算加法运算通过**ImageChops.add(image1, image2, scale=1.0, offset=0)**方法实现,合成公式如下:
out = (im1 + im2)/scale + offset1我也看不懂,其中scale和offset是有默认值的 。所以使用时我们可以省略参数,具体实现如下:
from PIL import Image, ImageChops# 打开图像im1 = Image.open('im1.jpg')im2 = Image.open('im2.jpg')# 合成图像并显示im3 = ImageChops.add(im1, im2)im3.show()1实验结果惨不忍睹,效果图如下:
超全的Python图像处理讲解,小白也能懂

文章插图
 
3.2、减法运算加法运算通过**ImageChops.subtract(image1, image2, scale=1.0, offset=0)**方法实现,合成公式如下:
out = (im1 - im2)/scale + offset1其使用和add方法是一致的,代码如下:
from PIL import Image, ImageChops# 打开图像im1 = Image.open('xscn.jpg')im2 = Image.open('xscn2.jpg')# 合成图像并显示im3 = ImageChops.subtract(im1, im2)im3.show()1原本是不想放效果图的,但是运行后,发现效果图比较美,所以想和大家分享一下:
超全的Python图像处理讲解,小白也能懂

文章插图
 
希望大家读到这篇博客的时候是独自一人的深夜 。
3.3、其它函数因为大多数函数的使用都比较简单,所以后续的函数也不单独拿出来讲了,具体功效可以看下列表:
超全的Python图像处理讲解,小白也能懂

文章插图
 
演示代码如下:
from PIL import Image, ImageChops# 打开图像im1 = Image.open("im1.jpg")im2 = Image.open("im2.jpg")# 对图像进行各种操作im3 = ImageChops.darker(im1, im2)im3.save('darker.jpg')im3 = ImageChops.lighter(im1, im2)im3.save('lighter.jpg')im3 = ImageChops.invert(im1)im3.save('invert.jpg')im3 = ImageChops.multiply(im1, im2)im3.save('multiply.jpg')im3 = ImageChops.screen(im1, im2)im3.save('screen.jpg')im3 = ImageChops.difference(im1, im2)im3.save('difference.jpg')1其中,我选取的素材im1和im2都是上面使用到的那两张,效果图如下:
超全的Python图像处理讲解,小白也能懂

文章插图
 
这样,我的女神就被我毁的体无完肤了 。
四、ImageEnhance模块(色彩、亮度)ImageEnhance提供了许多函数,用于调整图像的色彩、对比度、亮度、清晰度等 。调整图像的步骤如下:
1,确定要调整的参数,获取特定的调整器
2,调用调整器的enhance方法,传入参数进行调整 。
注意:所有调整器都实现同一个接口,该接口中包含一个方法enhance
其中enhance方法接收一个参数factor,factor是一个大于0的数 。当factor为1时,返回原图,当factor小于1返回减弱图,大于1返回增强图 。
各个获取色彩调整器的方法如下:
超全的Python图像处理讲解,小白也能懂

文章插图
 
虽然是很想偷懒,不去做实验,但是想想还是做了如下实验,代码如下:
from PIL import Image, ImageEnhance# 打开im1im1 = Image.open("gtx.jpg")# 获取颜色(各种)调整器enhance_im1 = ImageEnhance.Color(im1)#enhance_im1 = ImageEnhance.Contrast(im1)#enhance_im1 = ImageEnhance.Brightness(im1)#enhance_im1 = ImageEnhance.Sharpness(im1)# 减弱颜色(以及其它属性)im2 = enhance_im1.enhance(0.5)# 增强颜色(以及其它属性)im3 = enhance_im1.enhance(1.5)# 获取原图大小w, h = im1.size# 创建一个原图大小3倍的图片img = Image.new("RGB", (w*3, h))# 将减弱的图片放在最左边img.paste(im2, (0, 0))# 将原图放在中间img.paste(im1, (w, 0))# 将增强后的图片放在最右边img.paste(im3, (w*2, 0))# 显示图片img.show()1


推荐阅读