Image模块:

Image模块是PIL最基本的模块,其中导出了Image类,一个Image类实例对象就对应了一副图像。同时,Image模块还提供了很多有用的函数。

(1)打开一副图像文件:

import Image

img = Image.open(“dip.jpg”)

这将返回一个Image类实例对象,后面的所有的操作都是在img上完成的。在这里,我们读入的图像是:

Python PIL的Image模块

(2)调整图像大小:

import Image

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

new_img = img.resize((128,128),Image.BILINEAR)

new_img.save("new_img.jpg")

原来的图像大小是256x256,现在,保存的new_img.jpg的大小是128x128:

Python PIL的Image模块

就是这么简单,需要说明的是Image.BILINEAR指定采用双线性法对像素点插值。

(3)旋转图像:

现在我们把刚才调整过大小的图像旋转45度:

import Image

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

new_img = img.resize((128,128),Image.BILINEAR)

rot_img = new_img.rotate(45)

rot_img.save("rot_img.jpg")

于是我们保存到rot_img.jpg的图像看起来像下面这样:

Python PIL的Image模块

(4)格式转换:

假设我们要把上面生成的rot_img.jpg转换成bmp图像,要做到这一点这太简单了:只需要在上面的代码后面添加下面这样一行即可:

rot_img.save("con_img.bmp")

如果不指定保存格式,PIL将自动根据文件名后缀完成格式之间的转换,是不是很简单呢?

(5)直方图统计:

Image类实例的histogram()方法能够对直方图数据进行统计,并将结果做为一个列表(list)返回。比如,我们对上面的旋转后生成的图像进行直方图统计:

import Image

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

new_img = img.resize((128,128),Image.BILINEAR)

rot_img = new_img.rotate(45)

print rot_img.histogram()

运行之后将打印出所有256个灰度级像素点个数的统计值:

[2819, 22, 82, 119, 186, 204, 212, 218, 223, 200, 151, 103, 129, 74, 80, 83, 110, 70, 59, 64, 59, 58, 35, 45, 42, 38, 32, 39, 33, 19, 24, 26, 32, 17, 33, 24, 34, 19, 18, 15, 11, 23, 16, 15, 21, 13, 20, 22, 27, 10, 29, 26, 18, 16, 28, 18, 26, 37, 36, 25, 28, 36, 28, 31, 22, 20, 15, 13, 15, 18, 12, 15, 21, 21, 12, 18, 17, 12, 11, 18, 16, 14, 21, 20, 18, 19, 15, 20, 22, 16, 22, 15, 23, 26, 16, 8, 13, 19, 30, 16, 15, 11, 22, 12, 14, 8, 10, 14, 13, 8, 12, 22, 11, 13, 18, 16, 21, 21, 14, 14, 11, 14, 15, 9, 23, 19, 15, 17, 9, 10, 11, 12, 14, 16, 9, 17, 15, 20, 14, 18, 18, 32, 34, 55, 54, 51, 72, 78, 83, 99, 118, 171, 138, 177, 191, 158, 159, 123, 106, 136, 121, 121, 148, 137, 118, 145, 150, 150, 133, 98, 111, 118, 111, 104, 129, 124, 104, 144, 126, 118, 133, 124, 108, 87, 87, 83, 85, 75, 76, 75, 62, 84, 46, 61, 54, 54, 63, 45, 54, 66, 46, 52, 51, 49, 51, 52, 62, 50, 67, 72, 53, 53, 83, 54, 39, 57, 31, 53, 31, 38, 38, 42, 31, 29, 38, 39, 39, 26, 43, 36, 45, 68, 57, 60, 42, 39, 41, 38, 46, 44, 40, 47, 57, 45, 59, 53, 59, 81, 78, 75, 95, 46, 62, 1, 0, 0]

小结:以上介绍了Image模块最基本的功能,作为对PIL库初步的认识已经足够了,值得说明的是,这里提到只是Image一部分功能而已,要对整个Image模块的功能有一个全面的了解和掌握,请参见PIL-handbook.pdf。

没有登录不能评论