前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python常用库-Pillow图像处理

Python常用库-Pillow图像处理

作者头像
叉叉敌
发布2019-02-20 17:01:16
6920
发布2019-02-20 17:01:16
举报
文章被收录于专栏:ChasaysChasays

在Pyhton图像库「Python Imaging Library」支持大量的图片格式,是图像处理和批处理的最佳选择,可以用这个来创建缩略图、文件格式之间的转换、打印图片、大小转换、颜色转换、还有对图片加滤镜「模糊、磨皮」等操作。功能非常简单,但是API调用非常简单


安装

安装的仍然使用pip安装,非常简单快捷。对于国内用户来说,不能访问python官网的时候,可以替换python源为阿里源或者其他国内源;其二对于其他的内网用户来说,可以在安装的时候加上代理地址。

代码语言:javascript
复制
$ pip install Pillow # python2
$ pip3 install Pillow # python3 如果没有添加pip3软连接,用python3的pip一样的

$ pip install Pillow --proxy=10.10.10.10:80 # 代理

验证是否安装成功,没有报错就是安装成功了。

代码语言:javascript
复制
>>> import PIL
>>> dir(PIL)
['PILLOW_VERSION', 'VERSION', '__builtins__', '__cached__', '__doc__.......

访问文件

用「open」方法打开指定文件即可,可以看到文件的一些详细参数,比如大小、高度、长度、格式、模式等。

代码语言:javascript
复制
from PIL import Image
try:
    im= Image.open("1.png")
    print(im.format, im.size, im.mode)
except Exception as e:
        print(e)
# output: PNG (736, 458) RGB

加载图像

获取到Image实例之后,可以用这个类的方法来处理和操作图像。这个是把图片保存位临时文件,然后用系统默认的图片查看工具来显示图片的,方便调试和测试。也可以用save()方法来保存文件。

代码语言:javascript
复制
>>> im.show()
>>> im.save("test.png") #

读写图像

对图像的几何变换、颜色变换、图像增强、以及剪切等操作。

图像过滤器

图像增强处理里面有个,包含了一个过滤器ImageFilter模块,可以模糊图片等操作,下面是一个模糊操作的Demo。

代码语言:javascript
复制
# Import the modules
from PIL import Image, ImageFilter

try:
    # Load an image from the hard drive
    original = Image.open("1.png")

    # Blur the image
    blurred = original.filter(ImageFilter.BLUR)

    # Display both images
    original.show()
    blurred.show()

    # save the new image
    blurred.save("blurred.png")

except:
    print "Unable to load image"

效果如下:

在这里插入图片描述
在这里插入图片描述

除了BLUR,还有其他的参数。

代码语言:javascript
复制
BLUR
CONTOUR
DETAIL
EDGE_ENHANCE
EDGE_ENHANCE_MORE
EMBOSS
FIND_EDGES
SMOOTH
SMOOTH_MORE
SHARPEN
创建缩略图

也是同样使用实例的thumbnail方法即可,非常简单。

代码语言:javascript
复制
from PIL import Image
size = (128, 128)
thumbnail= "thumbnail.jpeg"
try:
    im =  Image.open("1.png")
except Exception as e:
    print(e)
im.thumbnail(size)
im.save(thumbnail)
缩略图
缩略图

剪切、粘贴

剪切使用crop方法即可,指定 2 个坐标,需要说明的是左上角是(0 ,0);

代码语言:javascript
复制
box = (10, 10, 200, 200) # 对应: 左 上 右 下
region = im.crop(box) # 剪切

region = region.transpose(Image.ROTATE_180)
im.paste(region, box) # 粘贴

小结

python 图像处理「PIL」对图像处理非常容易,加上完善的API文档手册,对于新手也是非常友好的。

更多阅读

  1. Pillow 官方文档
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 访问文件
  • 加载图像
  • 读写图像
    • 图像过滤器
      • 创建缩略图
      • 剪切、粘贴
      • 小结
      • 更多阅读
      相关产品与服务
      图像处理
      图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档