Pillow 图像增强

2021-07-06 11:55 更新

python图像库提供了许多方法和模块,可以用来增强图像。

过滤器

这个 ​ImageFilter ​模块包含许多预定义的增强过滤器,可用于​ filter() ​方法。

应用筛选器

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

点操作

这个 ​point()​ 方法可用于转换图像的像素值(例如图像对比度操作)。在大多数情况下,需要一个参数的函数对象可以传递给这个方法。每个像素都根据该功能进行处理:

应用点变换

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

使用上述技术,您可以快速地将任何简单表达式应用于图像。您也可以将 ​point()​ 和 ​paste()​ 有选择地修改图像的方法:

处理单个波段

# split the image into individual bands
source = im.split()

R, G, B = 0, 1, 2

# select regions where red is less than 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)

注意用于创建掩码的语法:

imout = im.point(lambda i: expression and 255)

python只计算逻辑表达式中确定结果所必需的部分,并返回作为表达式结果检查的最后一个值。因此,如果上面的表达式为false(0),python不会查看第二个操作数,因此返回0。否则,返回255。

增强

对于更高级的图像增强,可以使用 ​ImageEnhance ​模块。从图像创建后,可以使用增强对象快速尝试不同的设置。

您可以通过这种方式调整对比度、亮度、颜色平衡和清晰度。

增强图像

from PIL import ImageEnhance

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


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号