ImageEnhance模块:

这个模块提供了一个常用的图像增强工具箱。可以用来进行色彩增强、亮度增强、对比度增强、图像尖锐化等等增强操作。所有操作都有相同形式的接口——通过相应类的enhance方法实现:色彩增强通过Color类的enhance方法实现;亮度增强通过Brightness类的enhance方法实现;对比度增强通过Contrast类的enhance方法实现;尖锐化通过Sharpness类的enhance方法实现。所有的操作都需要向类的构造函数传递一个Image对象作为参数,这个参数定义了增强作用的对象。同时所有的操作都返回一个新的Image对象。如果传给enhance方法的参数是1.0,则不对原图像做任何改变,直接返回原图像的一个拷贝。下面我们通过几个简单的例子进行说明:

(1)亮度增强:

import Image,ImageEnhance

img = Image.open("img.jpg")

brightness = ImageEnhance.Brightness(img)

bright_img = brightness.enhance(2.0)

bright_img.save("bright.jpg")

说明:

brightness = ImageEnhance.Brightness(img)

这一行把img传给Brightness类,得到一个Brightness类实例;

bright_img = brightness.enhance(2.0)

这一行调用brightness实例的enhance方法,传入的参数指定将亮度增强2倍;

我们最后得到bright.jpg图像看起来像这样:

Python PIL的ImageEnhance模块 Python PIL的ImageEnhance模块

右边的的图像是增强之前的图像(原图像),注意两者的亮度差比是很大的。

(2)图像尖锐化:

import Image,ImageEnhance

img = Image.open("img.jpg")

sharpness = ImageEnhance.Sharpness(img)

sharp_img = sharpness.enhance(7.0)

sharp_img.save("bright.jpg")

这段代码和上面的完全类似,因此这里不做过多的说明。我们来看一下增强前后的效果对比:

Python PIL的ImageEnhance模块 Python PIL的ImageEnhance模块

右边的的图像是增强之前的原图像,注意两者的尖锐化程度是很不一样的。

(3)对比度增强:

import Image,ImageEnhance

img = Image.open("img.jpg")

contrast = ImageEnhance.Contrast(img)

contrast_img = contrast.enhance(2.0)

contrast_img.save("contrast.jpg")

同上,我们只看增强前后的效果对比:

Python PIL的ImageEnhance模块 Python PIL的ImageEnhance模块

很明显,增强之后的图像(左边)比原来的图像(右边)对比度提高了。

小结:用ImageEnhance来进行常用的图像增强是有效的,并且很简单。当然,对于精细复杂的图像增强操作而言这里提供的功能不够强大,但是在进行简单的图像增强操作的时候,一种简单易行的解决方案无疑是很吸引人的。

没有登录不能评论