codecamp

Pillow 图像增强

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")


Pillow 颜色空间变换
Pillow 图像序列
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Pillow 参考

Pillow ImageChops模块

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }