用python+pil进行图像处理

用python+pil进行图像处理

ID:1238229

大小:44.00 KB

页数:13页

时间:2017-11-09

用python+pil进行图像处理_第1页
用python+pil进行图像处理_第2页
用python+pil进行图像处理_第3页
用python+pil进行图像处理_第4页
用python+pil进行图像处理_第5页
资源描述:

《用python+pil进行图像处理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、关于PIL库的一些概念  pil能处理的图片类型  pil可以处理光栅图片(像素数据组成的的块)。  通道  一个图片可以包含一到多个数据通道,如果这些通道具有相同的维数和深度,Pil允许将这些通道进行叠加  模式  11位像素,黑和白,存成8位的像素L8位像素,黑白P8位像素,使用调色板映射到任何其他模式RGB3×8位像素,真彩RGBA4×8位像素,真彩+透明通道CMYK4×8位像素,颜色隔离YCbCr3×8位像素,彩色视频格式I32位整型像素F32位浮点型像素尺寸  通过图片对象的size属性可以得到图片的尺寸,结果这是一

2、个二元组,包含水平和垂直方向上的像素数。  坐标  Pil采取左上角为(0,0)的坐标系统  调色板  mode("P")为每个像素定义具体的颜色值  图片信息  可以通过info属性读取一张图片的附加信息,这个与图片的格式有关。  滤镜  在对图片的几何操作中可能会将多个输入像素映射到单个的输出像素,pil提供4种不同的采样滤镜(在目前的版本中,后续的版本可能支持更多)  NEAREST最近BILINEAR双线型BICUBIC双三次插值ANTIALIAS平滑  在RGB模式下,每个图片由三个通道叠加而成,每个模式下为一个灰度

3、图,当有一个调色板来调色的时候,这三张灰度图的叠加即可合成3*8位(每个像素)的一个真彩图片。pil库中,图片之间的模式(mode)可以转化。下面给出一些简单的例子,例子中的所有图片均来自于国家地理的官网,为了使得文档比较短小,每个图片均使用Pil缩放成1/2大小,如有侵权嫌疑,请尽快联系,我会删除这些图片。  所有的图片操作必须有一个操作对象,Pil提供open(filename)进行这个过程  打开图片  1.导入pil的Image模块  2.使用open(filename)打开文件,返回一个image对象  Python

4、代码im=Image.open('filename')此后,一切关于图片的操作均基于这个对象。    打开后,我们可以查看一些图片信息,如im.format,im.size,im.mode等。调用im.show()会在图片查看工具中显示当前操作的image对象,这个跟个人的系统有关系,我系统中默认是用WindowsPictureandFaxViewer打开的。这个方法用来查看临时的图片效果。  读写图片  pil中转换图片格式非常简单(转换图片模式是另一个概念,不要混淆),只需要调用img.save(filename)即可比如

5、有一个bmp(位图)图片,使用img=Image.open('file.bmp')打开后,只需要img.save('file.jpg')即可转换。不过一般情况下,save(filename)是不用做这个用途的,通常,save用以保存一个临时的image对象到硬盘。而转换工作由一个功能更为强大的convert()方法来完成。  拷贝,粘贴,合并  Python代码box=(100,100,500,500)#设置要拷贝的区域#将im表示的图片对象拷贝到region中,大小为(400*400)像素。这个region可以用来后续的操作

6、(region其实就是一个Image对象),box变量是一个四元组(左,上,右,下)。region=im.crop(box)region=region.transpose(Image.ROTATE_180)#从字面上就可以看出,先把region中的Image反转180度,然后再放回到region中。im.paste(region,box)#粘贴box大小的region到原先的图片对象中。  前面说过,每一个RGB都是由三个通道的灰度图叠加的,所以pil提供了将这三个通道分离的方法  Python代码r,g,b=im.split

7、()#分割成三个通道r.show()g.show()b.show()im=Image.merge("RGB",(b,g,r))#将b,r两个通道进行翻转。  红色通道的灰度图    绿色通道的灰度图    蓝色通道的灰度图    互换红蓝通道后的合成图  几何转变  几何转变提供resize,rotate等方法,用以重定义图片大小,对图片进行旋转等操作,在实际应用中比较广泛。  如  Python代码 out=img.resize((128,128))#resize成128*128像素大小。 out=img.rotate(45

8、)#逆时针旋转45度  逆时针45度    镜面效果,左右翻转  transpose()方法预定义了一些旋转方式,如  左右反转,上下翻转,逆时针旋转(90,180,270)度等,非常方便,rotate()和transpose()方法在表现上没有任何不同。  图片加强  滤镜

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。