图像处理库—PIL库简介
本文作者:张梦婷
本文编辑:张梦婷
技术总编:张学人
爬虫俱乐部将于2019年1月19日至25日在武汉举行两期Stata编程技术定制培训,此次采取初级班和高级班分批次培训模式,采用理论与案例相结合的方式,旨在帮助大家熟悉Stata核心的爬虫技术,以及Stata与其他软件交互的高端技术。详细培训大纲及报名方式,请见往期推文《2019寒假Stata编程技术定制培训班》。报名表下载请点击文末阅读原文呦~
PIL是Python处理图像的库,但PIL仅支持到Python2.7,于是在PIL基础上创建了兼容版本Pillow,相比老版本PIL,新版本Pillow加入了许多新的特性,功能更加强大,为我们日常处理图像提供了便利。接下来,我们结合具体实例来学习它的用法。
在cmd窗口通过以下命令安装pillow:
pip install pillow
若电脑已经安装Anaconda,Pillow就可以使用了,无需重复安装。
首先引入PIL第三方库,并且通过Image.open(fp,mode=’r’)函数打开所需图像文件。其中,参数fp为给定的图像文件名;mode为模式,如果给出,则参数必须为”r”。
from PIL import Image #引入第三方库
im = Image.open('zfc.jpg') #打开所需图像文件
利用Image.size函数输出输出原始图像大小。其中,图像大小以(width,heigh)二元组形式给出。
print('原始图片的大小为:%sx%s' % (im.size)) #输出原始图像的大小
由结果可知,原始图像的大小为640X640。
利用Image.thumbnail(size)函数将原始图像缩小为原来的一半并输出。其中,参数size为要求的尺寸;Image.width返回图像宽度,以像素为单位;Image.height返回图像高度,以像素为单位。
im.thumbnail((im.width//2,im.height//2)) #将图片大小缩小为原来的一半
print('修改后的尺寸为:%sx%s'% (im.size)) #输出修改后图片的大小
由结果可知,原始图片的大小已被修改,修改后的尺寸为320X320。
用Image.rotate(angle,fillcolor=None)函数将图像旋转180°。其中,参数angle为旋转角度,以逆时针方向旋转;fillcolor为旋转图像外部区域的可选颜色。
im.rotate(180) #将图片旋转180°
利用Image.save(fp,format=None)函数将旋转后的图像保存。其中,参数fp为要保存的文件名;format为可选的保存格式,如果省略,则由文件扩展名来确定。
im.save('zfc1.jpg','jpeg') #对修改后的图片以jepg的格式进行保存
则修改后的图片如下所示:
由图可得,原始图片旋转了180°,大小也缩小为原来的一半。
爬虫俱乐部是您身边的科研助手,能够为您在数据处理、实证研究中提供帮助。承蒙30000+粉丝的支持与厚爱,我们在腾讯课堂推出了网络视频课程,专注于数据整理、网络爬虫、循环命令编制和结果输出…李老师及团队精彩的讲解,深入浅出,注重案例与实战,让您更加快速高效地掌握Stata技巧及数据处理的精髓,而且可以重复观看,百分百好评,简单易学,一个月让您从入门到精通,绝对物超所值!
爬虫俱乐部最近一次的网课为大家系统整理了各种stata读入文件乱码问题的解决方法,请大家关注爬虫俱乐部腾讯课堂的课程《精通stata之数据整理》。基本上,我们会按照一周一次课的频率持续更新学习内容,欢迎大家前去学习!课程网址:
https://ke.qq.com/course/286526?tuin=1b60b462,敬请关注!
接下来,导入ImageFilter函数,利用ImageFilter.BLUR将原始图像整体模糊化并保存:
from PIL import ImageFilter #导入第三方库
im2 =im.filter(ImageFilter.BLUR) #将图像整体模糊化
im2.save('blur.jpg','jpeg')
模糊化后的图像如下所示:
或利用ImageFilter.EMBOSS将原始图像浮雕化,并保存。
im3 = im.filter(ImageFilter.CONTOUR) #将图像轮廓化
im3.save('contour.jpg','jpeg')
处理后的图像如下所示:
以上就是PIL处理图像的常见用法,赶快动手去创建自己的图像吧!
有问题,不要怕!访问
http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx (复制到浏览器中)下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~
爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~
爬虫俱乐部隆重推出数据定制及处理业务,您有任何网页数据获取及处理方面的难题,请发邮件至我们邮箱statatraining@163.com,届时会有俱乐部高级会员为您排忧解难!
对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!
往期推文推荐
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。