PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方法。
3.ImageFilter类
ImageFilter类共提供10种预定义图像过滤方法:
方法表示 | 描述 |
---|---|
ImageFilter.BLUR | 图像的模糊效果 |
ImageFilter.CONTOUR | 图像的轮廓效果 |
ImageFilter.DETAIL | 图像的细节效果 |
ImageFilter.EDGE_ENHANCE | 图像的边界加强效果 |
ImageFilter.EDGE_ENHANCE_MORE | 图像的阈值边界加强效果 |
ImageFilter.EMBOSS | 图像的浮雕效果 |
ImageFilter.SMOOTHL | 图像的平滑效果 |
ImageFilter.FIND_EDGES | 图像的边界效果 |
ImageFilter.SMOOTH_MORE | 图像的阈值平滑效果 |
ImageFilter.SHARPEN | 图像的锐化效果 |
利用Image类的filter()方法可以使用ImageFilter类,使用方式如下:
Image.filter(ImageFilter.fuction)
例1:模糊效果
from PIL import Image
from PIL import ImageFilter
im = Image.open('村庄2.jfif')
om = im.filter(ImageFilter.BLUR)
om.save('aBLUR.jpg')
前面是生成图片,后面是原图,下同。
例2:轮廓效果
from PIL import Image
from PIL import ImageFilter
im = Image.open('村庄2.jfif')
om = im.filter(ImageFilter.CONTOUR)
om.save('aContour.jpg')
例3:细节效果
from PIL import Image
from PIL import ImageFilter
im = Image.open('村庄2.jfif')
om = im.filter(ImageFilter.DETAIL)
om.save('aDETAIL.jpg')
效果不明显
例4:边界加强效果
from PIL import Image
from PIL import ImageFilter
im = Image.open('村庄2.jfif')
om = im.filter(ImageFilter.EDGE_ENHANCE)
om.save('aEDGEENHANCE.jpg')
其他效果:
from PIL import Image
from PIL import ImageFilter
im = Image.open('村庄2.jfif')
om = im.filter(ImageFilter.EDGE_ENHANCE_MORE)#阈值边界加强效果
om.save('p//aEDGE_ENHANCE_MORE.jpg')
om2 = im.filter(ImageFilter.EMBOSS)#浮雕效果
om2.save('p//aEMBOSS.jpg')
om3 = im.filter(ImageFilter.FIND_EDGES)#边界效果
om3.save('p//aFIND_EDGES.jpg')
om4 = im.filter(ImageFilter.SMOOTH)#平滑效果
om4.save('p//aSMOOTH.jpg')
om5 = im.filter(ImageFilter.SMOOTH_MORE)#阈值平滑效果
om5.save('p//aSMOOTH_MORE.jpg')
om6 = im.filter(ImageFilter.SHARPEN)#锐化效果
om6.save('p//aSHARPEN.jpg')
阈值边界加强效果和浮雕效果
边界效果和锐化效果
平滑效果和阈值平滑效果:
4.ImageEnhance类
ImageEnhance类提供了更高级的图像增强功能,如调整色彩度、亮度、对比度、锐化等。
方法 | 描述 |
---|---|
ImageEnhance.enhance(factor) | 对选择属性的数值增强factor倍 |
ImageEnhance.Color(im) | 调整图像的颜色平衡 |
ImageEnhance.Contrast(im) | 调整图像的对比度 |
ImageEnhance.Brightness(im) | 调整图像的亮度 |
ImageEnhance.Sharpness(im) | 调整图像的锐度 |
例:增强图像对比度
from PIL import Image
from PIL import ImageEnhance
im = Image.open('村庄2.jfif')
om = ImageEnhance.Contrast(im)
om.enhance(20).save('aEnContrast.jpg')
from PIL import Image
from PIL import ImageEnhance
im = Image.open('村庄2.jfif')
om2 = ImageEnhance.Brightness(im)#调整亮度
om2.enhance(2).save('ImageEnhance//aBrightness.jpg')
亮度增强2倍
from PIL import Image
from PIL import ImageEnhance
im = Image.open('村庄2.jfif')
om3 = ImageEnhance.Color(im)#调整颜色平衡
om3.enhance(2).save('ImageEnhance//aColor.jpg')
om4 = ImageEnhance.Sharpness(im)#调整锐度
om4.enhance(2).save('ImageEnhance//aSharpness.jpg')
颜色增强2倍和锐化增强2倍