前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python图像处理模块pillow子模块Image用法精要

Python图像处理模块pillow子模块Image用法精要

作者头像
Python小屋屋主
发布2018-04-16 16:27:41
1.7K0
发布2018-04-16 16:27:41
举报
文章被收录于专栏:Python小屋Python小屋

Image是pillow库中一个非常重要的模块,提供了大量用于图像处理的方法。使用该模块时,首先需要导入。 >>> from PIL import Image 接下来,我们通过几个示例来简单演示一下这个模块的用法。 (1)打开图像文件 >>> im = Image.open('sample.jpg') (2)显示图像 >>> im.show() (3)查看图像信息 >>> im.format #查看图像格式 'JPEG' >>> im.size #查看图像大小,格式为(宽度, 高度) (200, 100) >>> im.height #查看图像高度 100 >>> im.width #查看图像宽度 200 (4)查看图像直方图 >>> im.histogram() #如果图像包含多个通道,则返回所有通道的直方图 >>> im.histogram()[:256] #查看第一个通道的直方图 (5)读取像素值 >>> im.getpixel((150, 80)) #参数必须是元组,两个元素分别表示x和y坐标 (255, 248, 220) #返回值分别表示红、绿、蓝三原色分量的值 (6)设置像素值,通过读取和修改图像像素值可以实现图像点运算 >>> im.putpixel((100,50), (128,30,120)) #第二个参数用来指定目标像素的颜色值 小提示:在使用时应注意图像文件的格式,这里演示的是24位颜色深度的图像,如果是256色的图像文件,那么getpixel()的返回值只是一个数字,而putpixel()的第二个参数也只需要一个数字就可以了。 (7)保存图像文件 >>> im.save('sample1.jpg') #可以把图像保存为另一个文件 >>> im.save('sample.bmp') #通过该方法也可以进行格式转换 >>> def img2jpg(imgFile): #转换图像文件格式 if type(imgFile)==str and imgFile.endswith(('.bmp', '.gif', '.png')): with Image.open(imgFile) as im: im.convert('RGB').save(imgFile[:-3]+'jpg') >>> img2jpg('1.gif') >>> img2jpg('1.bmp') >>> img2jpg('1.png') (8)图像缩放 >>> im = im.resize((100,100)) #参数表示图像的新尺寸,分别表示宽度和高度 (9)旋转图像,rotate()方法支持任意角度的旋转,而transpose()方法支持部分特殊角度的旋转,如90、180、270度旋转以及水平、垂直翻转等等。 >>> im = im.rotate(90) #逆时针旋转90度 >>> im = im.transpose(Image.ROTATE_180) #逆时针旋转180度 >>> im = im.transpose(Image.FLIP_LEFT_RIGHT) #水平翻转 >>> im = im.transpose(Image.FLIP_TOP_BOTTOM) #垂直翻转 (10)图像裁剪与粘贴 >>> box = (120, 194, 220, 294) #定义裁剪区域 >>> region = im.crop(box) #裁剪 >>> region = region.transpose(Image.ROTATE_180) >>> im.paste(region,box) #粘贴 (11)图像通道分离与合并 >>> r, g, b = im.split() #将彩色图像分离为同样大小的红、绿、蓝三分量子图 >>> imNew = Image.merge(im.mode, (r,g,b)) (12)创建缩略图 >>> im.thumbnail((50, 20)) #参数为缩略图尺寸 >>> im.save('2.jpg') #保存缩略图 (13)屏幕截图 >>> from PIL import ImageGrab >>> im = ImageGrab.grab((0,0,800,200)) #截取屏幕指定区域的图像 >>> im = ImageGrab.grab() #不带参数表示全屏幕截图 (14)图像增强 >>> from PIL import ImageFilter >>> im = im.filter(ImageFilter.DETAIL) #创建滤波器,使用不同的卷积核 >>> im = im.filter(ImageFilter.EDGE_ENHANCE) #边缘增强 >>> im = im.filter(ImageFilter.EDGE_ENHANCE_MORE) #边缘增强 (15)图像模糊 >>> im = im.filter(ImageFilter.BLUR) >>> im = im.filter(ImageFilter.GaussianBlur) #高斯模糊 >>> im.filter(ImageFilter.MedianFilter) #中值滤波 (16)图像边缘提取 >>> im = im.filter(ImageFilter.FIND_EDGES) (17)图像点运算 >>> im = im.point(lambda i:i*1.3) #整体变亮 >>> im = im.point(lambda i:i*0.7) #整体变暗 >>> im = im.point(lambda i: i*1.8 if i<100 else i*0.7) #自定义调整图像明暗度 也使用图像增强模块来实现上面类似的功能,例如 >>> from PIL import ImageEnhance >>> enh = ImageEnhance.Brightness(im) >>> enh.enhance(1.3).show() (18)图像冷暖色调整 >>> r, g, b = im.split() #分离图像 >>> r = r.point(lambda i:i*1.3) #红色分量变为原来的1.3倍 >>> g = g.point(lambda i:i*0.9) #绿色分量变为原来的0.9 >>> b = b.point(lambda i:0) #把蓝色分量变为0 >>> im = Image.merge(im.mode,(r,g,b)) #合并图像 >>> im.show() (19)图像对比度增强 >>> from PIL import ImageEnhance >>> im = ImageEnhance.Contrast(im) >>> im = im.enhance(1.3) #对比度增强为原来的1.3倍

本文内容节选自《Python可以这样学》(董付国著,清华大学出版社,已出版,预计2017.2.1上架)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档