之前用PIL的时候都不知道看官方文档,网上搜索结果靠前的一些介绍性的博客其实很扯淡,讲两个函数、贴三张图,文章就完了。
今天把他的文档看了看,发现一点也不简单,网上介绍的不过是冰山一角。
对于我这样一个不太懂多媒体的人,如果用到图像处理,主要也就这些操作:
读写、取通道、两幅图合并、像素点操作、各种滤镜、色彩模式转换、图像旋转、缩放、裁剪、仿射。
PIL对付这些小喽啰,都是完全没有问题的。
- 读写
- open是Image类的一个方法,返回值是一个Image对象,值得注意的是,open不能打开网络图片,之前读取网上的验证码,就是先request图片网址存一个string以后再用StringIO打开的。
- 显示图像是show方法,但是文档中已经指出:
show 的标准实现不是很高效,因为它先将图像保存成一个临时文件,然后调用 xv 程序来显示图像。如果你没有安装xv ,它甚至不能工作。然而如果它可用,它将是非常方便的出错和测试的工具。
- 保存图像是save方法,可以显式指定要保存的文件的格式
- 几何变换
- 缩略图:thumbnail方法,参数是一个size,指明宽高
- 裁剪:crop,大概是最常用的方法之一了,和opencv的区别在于,这里crop的参数box,是矩形的四个角,x1,x2,y1,y2,而opencv中的box是x,y,width,height
- 转置:transpose,相当于先镜像再旋转
- resize:
- 通道:
- 通道的分离是split,合并是merge,split方法能够创建一组新的图像,每一幅都是原来多通道图像的一个通道。merge函数以一个模式和一组图像的元组为参数,把这些图像组成一幅新图像。如:
im = Image.merge("RGB", (b, g, r))`
- 通道的分离是split,合并是merge,split方法能够创建一组新的图像,每一幅都是原来多通道图像的一个通道。merge函数以一个模式和一组图像的元组为参数,把这些图像组成一幅新图像。如:
这里有两篇简介的写的挺漂亮:
http://onlypython.group.iteye.com/group/wiki/1371-python-graphics-library-pil-python-image-library-introduction
http://onlypython.group.iteye.com/group/wiki/1372-python-graphics-image-processing-library-introduced-the-image-module
时间: 2024-12-28 01:22:23