• PIL学习


    PIL学习

    目录:

    • PIL和Pillow
    • PIL的size属性
    • PIL的mode属性
    • PIL的图像转换
    • Numpy 和 PIL.Image 的联动

    参考:

    • Pillow mode https://pillow.readthedocs.io/en/stable/handbook/concepts.html#concept-modes

    归一化

    https://blog.csdn.net/weixin_49346755/article/details/127366789

    PIL和Pillow

    PIL全称:python image library。

    Pillow是PIL的分支(进化版),你可以将两者视为同一样东西。当你用pip下载pillow时使用的是pip install pillow,当你在python解释器中导入pillow时,使用的是import PIL

    在这里插入图片描述

    PIL的size属性

    我们通过size属性来查看图像的大小,图片大小可以通过size属性进行访问。

    PIL的mode属性

    PIL共有12种模式,其中常用的L模式是1通道、8位整型灰度图像,RGB是3通道、24位整型灰度图像。注意F是1通道、32位浮点型图像,对于32位浮点型数据的理解可以参看IEEE 754标准。

    请添加图片描述

    我们通过PIL.Image.open(“path”)创建PIL.Image对象,查看该对象的mode属性来查看其mode。

    PIL的图像转换

    更改mode属性即对图像的类型进行转换,如将RGB转为L,就是将彩色图片转换为了灰度图片。

    Image中mode更改

    使用convert方法进行mode参数的更改,convert中需要填写上述mode中参数。

    from PIL import Image
    image = Image.open("/home/...")
    image = image.convert("L")
    
    • 1
    • 2
    • 3

    Numpy 和 PIL.Image 的联动

    PIL.Image对象中的单个元素的类型设置比较少,没办法满足你的要求?例如我们需要将Image传入Pytorch框架进行训练,由于Pytorch框架的权重是torch.float32类型,我们就需要将输入图片中每个像素点元素的值的类型设置为float32,如果你对PIL.Image的mode类型不了解,也可以将PIL.Image对象转为numpy.ndarray类型对象处理后处理再转为PIL.Image类型。

    numpy的dtype

    numpy的dtype类似PIL.Image.mode,能够规定numpy的数据元素类型,常见的dtype如下:

    请添加图片描述

    PIL的图像可以在ImageNumpy中实现自由转换。

    from PIL import Image
    import numpy as np
    # Image 转 Numpy
    image = Image.open("/home/...")
    image = np.array(image)
    # Numpy 转 Image
    image = Image.fromarray(image)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Image中type更改

    Image中单个元素的type更改可以考虑先将其转换为Numpy,再在Numpy中指定dtype数据类型再转为Image类型。

    # 指定numpyt的dtype类型
    image = Image.open("/home/...")
    image = np.array(image)
    image = image.astype("float32")
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    halcon学习和实践(工业视觉套路)
    程序员过了35岁没人要?“这行越老越香”
    我们拆了一款双通道三核便携示波器
    位运算 离散化 区间和算法
    单个数据盘分区如何配置LVM
    QT 5.8
    SWAGGER 出错解决
    加载用户数据至用户维度表
    某省医保局:强化医保信息化高质量建设,提升数字医疗保障服务能力
    【餐厅点餐平台|三】模块设计
  • 原文地址:https://blog.csdn.net/qq_43369406/article/details/127781871