Python中有一个第三方图像数据库,由于其强大功能和简单易用的API几乎被认为是Python平台上的官方图像处理库了,它就是PIL(PythonImage Library)。

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

PIL原来只支持到Python2.x版本,但后来一些志愿者们在它的基础上添加了许多新特性,并移植到Python3.x库中,更名为Pillow。如果你的电脑上安装了Anaconda就不需要再下载Pillow,否则可以通过pip进行安装。

接下来通过一些小栗子,一起来体会它的“美图”功能。

 美图秀秀功能之一:图像的导入与信息查看

在对图像进行处理之前,首先我们需要从文件中加载一张图像或者从头创造一张图像,那么在本文中介绍的将是根据已有的图像进行操作。

如何加载图像并查看它的信息,以及处理之后如何保存呢?PIL中的核心类—Image可以帮我们实现。

from PIL import Image  wyb = Image.open('王一博.jpg','r') wyb.show()print(wyb.size,wyb.format,wyb.mode)

和打开其他文件的方式一样,Image中同样利用open(filename,mode)函数打开图像,并返回一个Image对象,通过show函数可以展示得到的wyb图像,如下所绘。

通过返回对象的属性,来查看图像信息。其中,size通过像素表示打开图像的大小——宽度和高度,每一个像素代表一个坐标单位;format表示图像的格式,包括PNG、JPEG等;mode表示图像的模式,包括RGB、HSV等。返回的信息如下所示:

美图秀秀功能之二:图像的裁剪

根据图像的大小,我们可以截取指定位置的图像,这也就是美图秀秀的“裁剪图片”功能啦。裁剪图像用的函数为crop(box),它返回的也是一个Image对象,其中box是一个含有四个数字的元组,前两个数字表示裁剪的矩形图像区域中左上角的横纵坐标,后两个数字代表右下角的横纵坐标。

如果想要裁剪上图中王一博的头部图像,我们可以根据wyb.size判断大概的位置信息。​​​​​​​

matrix = (250,150,800,600)wyb_head = wyb.crop(matrix)wyb_head.show()

根据左上角的横纵坐标250,150和右下角的横纵坐标800,600,截取到的图像如下所示:

如果要对处理后的图像进行保存,可以使用save(filename,format)函数来保存指定格式的图像。

wyb_head.save('头.png','png')

美图秀秀功能之三:图像的增强

用美图秀秀P图的时候,我们经常在“增强”选项中提高图像的亮度、对比度等。这些功能利用PIL库同样可以搞定!

图像增强函数ImageEnhance是PIL下面的一个子类,我们以增加亮度和增加对比度为例,感受一下它的神奇之处。​​​​​​​

from PIL import ImageEnhancebright = ImageEnhance.Brightness(wyb)wyb_bright = bright.enhance(1.5)wyb_bright.show()

ImageEnhance.Brightness用于增加图片的亮度,并返回一个Image对象bright。同样利用“王一博.jpg”图像,通过enhance方法将的亮度增加50%,结果如下所示:

也可以使用ImageEnhance.Contrast增加图片的对比度。为了感受处理后的图像与原始图像的区别,enhance的参数设置为2,表示将对比度增加100%,即原来的2倍。​​​​​​​

contrast=ImageEnhance.Contrast(wyb)wyb_contrast=contrast.enhance(2) #亮度增加100%wyb_contrast.show()

结果如下:

美图秀秀功能之四:图像模式的转换

一般我们看到的图片都是RGB模式,也就是真彩图,其实图像有多种模式,如1、L、P、CMYK等等。我们以将一个猫猫图像转换成灰度图(L)和二值图像(1)为例,感受Image的“滤镜”功能。​​​​​​​

cat=Image.open('猫猫.jpg','r')cat.show()

灰度模式图像有256个可能的灰色值,我们将图像转换为灰度图,对应的模式为“L”,这一转换需要利用convert(mode)方法。

​​​​​​​

cat_L=cat.convert("L")cat_L.show()

对应的图像如下所示:

二值图像的每个像素上只有两个可能的值,黑色或者白色,模式为“1”。利用同样的方法将原始的真彩图转换为“1”模式。​​​​​​​

cat_1=cat.convert("1")cat_1.show()

二值图像如下所示:

PIL中还有其他模式的图像,都可以利用convert方法转换。

当然以上介绍的只是PIL可实现的众多功能中微不足道的几种方法啦~后续小编仍会带领大家学习其他有趣的图像处理方法~

教你把Python当美图秀秀用相关推荐

  1. Python 图像 一样大小_教你把Python当美图秀秀用(一)

    本文作者:钱梦璇 文字编辑:孙晓玲 技术总编:张   邯 导读 Python中有一个第三方图像数据库,由于其强大功能和简单易用的API几乎被认为是Python平台上的官方图像处理库了,它就是PIL(P ...

  2. 四行代码,Python完成美图秀秀

    我们平时使用一些图像处理软件时,经常会看到其对图像的亮度.对比度.色度或者锐度进行调整.你是不是觉得这种技术的底层实现很高大上? 其实最基础的实现原理,用 Python 实现只需要几行代码,学会后你也 ...

  3. 4行代码,Python解决美图秀秀

    我们平时使用一些图像处理软件时,经常会看到其对图像的亮度.对比度.色度或者锐度进行调整.你是不是觉得这种技术的底层实现很高大上? 其实最基础的实现原理,用 Python 实现只需要几行代码,学会后你也 ...

  4. 简单几行代码,python制作美图秀秀软件!

    一张图片是由像素点组成的,那么放大一张照片的像素即可达到模糊效果. 试问,如果一个斑点很多的妹子图,像素被放大后,斑点是不是也会被淡化? 答案是肯定的! python模块: import cv2 im ...

  5. 十行代码,我用Python做一个迷你版的美图秀秀!

    美图秀秀相信大家都不陌生,大家只要操作美图秀秀,就可以P掉图片中脸上的一些瑕疵,让人变得更加的美丽.今天小编就带领大家来借助Python和Flask来实现一个美图秀秀的网页设计,大家只需要通过网页上传 ...

  6. 十行代码,用Python做一个迷你版的美图秀秀

    美图秀秀相信大家都不陌生,大家只要操作美图秀秀,就可以P掉图片中脸上的一些瑕疵,让人变得更加的美丽.今天小编就带领大家来借助Python和Flask来实现一个美图秀秀的网页设计,大家只需要通过网页上传 ...

  7. python 制作自己的新闻_新闻-十行代码,用Python做一个迷你版的美图秀秀

    十行代码,用Python做一个迷你版的美图秀秀 2020-02-28 10:16:08 作者: 匿名 浏览量:65次 美图秀秀相信大家都不陌生,大家只要操作美图秀秀,就可以P掉图片中脸上的一些瑕疵,让 ...

  8. python 两点曲线_十行代码,用Python做一个迷你版的美图秀秀

    美图秀秀相信大家都不陌生,大家只要操作美图秀秀,就可以P掉图片中脸上的一些瑕疵,让人变得更加的美丽.今天小编就带领大家来借助Python和Flask来实现一个美图秀秀的网页设计,大家只需要通过网页上传 ...

  9. python 将图片拼接,美图秀秀拼图

    #每天一点点,记录工作中实际可行操作# python 将图片拼接,美图秀秀拼图 这个脚本是将几个图片,拼成三行两列,类似美图秀秀的拼图功能 import PIL.Image as Imageimpor ...

最新文章

  1. 中科院博士整理的机器学习算法知识手册 | 附PDF下载
  2. 知识图谱学习笔记-PageRank
  3. (转) 一张图解AlphaGo原理及弱点
  4. java中无符号右移怎么移_Java | java中>>(右移)和>>>(无符号右移)的区别...
  5. 每天一道LeetCode-----删除链表倒数第n个节点
  6. SPOJ Problem 6219:Edit distance
  7. python网络爬虫系列(一)——urllib库(urlopen、urlretrieve、urlencode、parse-qs、urlparse和urlsplit、request.Request类)
  8. 批量获得oracle存储过程等
  9. 查看linux应用zabbix版本
  10. ubuntu 编译android .img_全网可用交叉编译工具链大全
  11. timimg学习数据删了_如何评价Timing这个督促人学习的软件?
  12. 数据挖掘导论——分类与预测
  13. HTC G14解锁S OFF 刷机 获取ROOT权限
  14. linux+qq+输入法下载官网,续:Linux下安装输入法和QQ软件
  15. 领先一步,步步领先:编程教育已进入中小学生课堂
  16. [油猴脚本] 知乎免广告
  17. 企业如何做好网址安全,防止入侵。
  18. 就业喜报|最高薪资15K,平均7216元,这个双十一不做“吃圭人”!
  19. Python之Pandas连接详解
  20. ImageView中动态设置图片

热门文章

  1. 模拟电路设计(19)---多谐波振荡器
  2. 来写一波402博客地址(纯粹东搞西搞)
  3. python获取本月天数_如何获得本月的所有天数?
  4. php 图片生成封面,ffmpeg生成视频封面图
  5. Version of Delve is too old for this version of Go【Goland Debug】报错
  6. IDEA编译项目报错Error:OutOfMemoryError: insufficient memory解决方法
  7. Exchange 2013 就地发现
  8. 【性能测试】功能简单的小说网站(Jmeter+fiddler实践)
  9. 电脑优化软件测试大乐,性能优化小结(转) - 乐呵呵测试天地 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  10. 四舍五入和银行家舍入法