python图片处理,python图像处理工具包pil用法

发布时间:2020-04-03编辑:脚本学堂
在python中使用免费的Python图像处理工具包PIL,实现基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换等。

python面向对象、弱数据类型等等特性都使得用它来进行简单的图像处理的时候非常的简洁方便。
 
PythonWare公司提供了免费的Python图像处理工具包PIL(Python Image Library),该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等 等。

虽然,在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点,使得它非常适合用来进行原型开发。
 
在PIL中,任何一副图像都是用一个Image对象表示,而这个类由和它同名的模块导出,因此,要加载一副图像,最简单形式:
 

from PIL import Image  
img = Image.open("img.jpg")   


 
注意:
第一行的Image是模块名;第二行的img是一个Image对象;
Image类是在Image模块中定义的。

关于Image模块和Image类,切记不要混淆了。

现在,就可以对img进行各种操作了,所有对img的 操作最终都会反映到到dip.img图像上。
 
PIL提供了丰富的功能模块:Image,ImageDraw,ImageEnhance,ImageFile等等。
 
最常用到的模块是 Image,ImageDraw,ImageEnhance这三个模块。下
 
面我对此分别做一介绍。关于其它模块的使用请参见说明文档.有关PIL软件包和 相关的说明文档可在PythonWare的站点www.Pythonware.com上获得。
 
download: http://www.pythonware.com/products/pil/index.htm
example: http://www.pythonware.com/library/pil/handbook/image.htm
 
3.Image模块:
 
Image模块是PIL最基本的模块,其中导出了Image类,一个Image类实例对象就对应了一副图像。同时,Image模块还提供了很多有用的函数。
 
1)打开一副图像文件:
 

from PIL import Image  
img = Image.open("img.jpg") 

  
 
这将返回一个Image类实例对象,后面的所有的操作都是在img上完成的。
 
2)调整图像大小:
 

from PIL 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。
注意,Image.BILINEAR指定采用双线性法对像素点插值。
 
(3)旋转图像:
把刚才调整过大小的图像旋转45度:
 

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

 
总结:
批处理或者简单的python图像处理任务中,采用python和pil(python image library)的组合来完成图像处理任务是一个很不错的选择。

设想有一个需要对某个文件夹下的所有图像将对比度提高2倍的任务。
用python来做将是 十分简单的。

python在图像处理方面的功能还比较弱,显然还不适合用来进行滤波、特征提取等等一些更为复杂的应用。