美文网首页
pillow 学习笔记(11.12.2017)

pillow 学习笔记(11.12.2017)

作者: 小政哥 | 来源:发表于2017-12-12 07:43 被阅读0次

    本文基于

    PIL(Python Image Library)是Python进行图像处理最常用也是最基础的库之一。基本上已经算是半标准库了。但是原版PIL的开发者已经基本上放弃更新这个库了。致使这个库有很多issues亟待解决,同时也无法支持日益流行的python3。所以,现在这个库已经基本被它的一个分支pillow取代。

    安装

    对于Linux和Windows来说,最方便的安装方法就是pip了。

    pip install pillow
    

    要注意的是,pillow和PIL不可以同时存在。如果要使用Pillow库必须要先卸载原来的PIL库。

    安装好之后,打开 Python 解释器,输入 from PIL import Image 来测试是否安装成功。

    Image类

    Image类的读取、显示与保存

    像openCV中的Mat一样。研究pillow就必须先研究其图像类Image

    from PIL import Image
    im = Image.open("source.png")
    im.show()
    

    经典三部曲。引库,读取,显示。经测试,直接im-show("source.png")也可以直接显示。还可以用im.save('somewhere.png')保存。注意可以利用改变保存文件的后缀来实现格式转换。比如

     Image.open('in.jpg').save('out.png')
    

    另外也可以从零创造一个新的空白图像。

    im = Image.new(mode, size, color=0)
    

    mode是RGB还是CMYK之类的选择。size`是一个二元元组。color``是背景色颜色,默认是黑色,也是用一个元组给出。

    Image类的常用属性

    #尺寸
    w, h = im.size
    #格式
    print(im.format)
    #或者
    print(type(im))
    #色彩模式
    print(im.mode)
    

    Image 类的 thumbnail() 方法

    Image 类的 thumbnail() 方法可以制作缩略图。用法是在参数中输入一个二元列表或者元组,如im.thumbnail([200, 400])im.thumbnail((200, 400))都可以。这里要注意,这一个过程型的方法,作用的对象是im本身。这个函数没有返回值。
    small_im = im.thumbnail([200, 400])是错误的。

    Image类的crop(box)方法

    crop()方法用于裁剪图像的一部分。它的参数是一个box元组,即(x, y, x+w, y+h), (x,y)是裁剪框左上角的坐标, (x+w, y+h)是右下角的坐标。如下图所示


    坐标示意图
    x = 100
    y = 100
    w = 200
    h = 200
    region = im.crop((x, y, x+w, y+h))
    region.show()
    region.save('region.jpg')
    

    调用方法的对象是输入图像,方法的返回值即输出图像。

    Image类的paste()方法

    paste()是粘贴类。输入参数有两个。一个是待贴入的图像,另一个也是一个box元组标记位置。box元组同上一部分。而带贴入的图像是一个Image类对象。调用这个paste()的对象就是被贴图的基底图像。这个方法也是一个没有返回值的过程方法。

    im.paste(region, (x+50, y+50, x+50+w, y+50+h))
    

    Image类的transpose()方法

    顾名思义,transpose()方法是用来实现图形变换的。可以在Image对象的后面以.transpose().transpose().transpose()的形式进行连续变换。输入参数是变换方法和参数,选取如下之一:

    Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM, 
    Image.ROTATE_90, 
    Image.ROTATE_180, 
    Image.ROTATE_270 
    Image.TRANSPOSE.
    

    相关文章

      网友评论

          本文标题:pillow 学习笔记(11.12.2017)

          本文链接:https://www.haomeiwen.com/subject/fxkgixtx.html