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图像看起来像这样:
右边的的图像是增强之前的图像(原图像),注意两者的亮度差比是很大的。
(2)图像尖锐化:
import Image,ImageEnhance
img = Image.open("img.jpg")
sharpness = ImageEnhance.Sharpness(img)
sharp_img = sharpness.enhance(7.0)
sharp_img.save("bright.jpg")
这段代码和上面的完全类似,因此这里不做过多的说明。我们来看一下增强前后的效果对比:
右边的的图像是增强之前的原图像,注意两者的尖锐化程度是很不一样的。
(3)对比度增强:
import Image,ImageEnhance
img = Image.open("img.jpg")
contrast = ImageEnhance.Contrast(img)
contrast_img = contrast.enhance(2.0)
contrast_img.save("contrast.jpg")
同上,我们只看增强前后的效果对比:
很明显,增强之后的图像(左边)比原来的图像(右边)对比度提高了。
小结:用ImageEnhance来进行常用的图像增强是有效的,并且很简单。当然,对于精细复杂的图像增强操作而言这里提供的功能不够强大,但是在进行简单的图像增强操作的时候,一种简单易行的解决方案无疑是很吸引人的。