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")
以上内容是否对您有帮助:
更多建议: