zoukankan      html  css  js  c++  java
  • Pillow图像处理

    0 Python图像处理库

    • 常用的有OpenCV, Pillow(PIL)和scikit-image. 比较常用的是前两个,做个简单的比较。
    • OpenCV
      - 原版OpenCV是基于C++的,现在使用的是python版本。
      - 处理速度快
      - 读取图片直接就是numpy ndarray类型
      - 读取图片是(B,G,R)通道,比较特殊
      - image.shape得到的是(H,W,C)
    • Pillow
      - Pytorch中比较常用
      - 读取图片是PIL Image格式,需要进一步转换为numpy ndarray类型
      - image.size得到的是(W,H)
    • 有比较说明OpenCV处理速度优势比较大,Python Pillow 和 cv2 图片 resize 速度的比较

    Pillow基本操作

    读取图像

    Image.open(filename)

    • 不像opencv需要根据图像类型指定flag,PIL会将图像自动读取为所需的格式,保存为Image对象。如,4-channel的PNG图像将会保留所有通道。
    • 当PIL读取图像遇到格式错误时,会有报错提醒
    • 采用此方法无法读取3-channel,32-bit float的TIFF图像。(我测试过,但opencv可以)

    保存图像

    imgObj.save(filename)

    实现Padding

    PIL的Image没有找到直接padding的方法,可以手动实现一下:
    例如右侧padding 10个像素

    p = Image.new('RGB', (w+10, h), (255, 255, 255))
    p.paste(image, (0, 0, w, h))
    
  • 相关阅读:
    C#面向对象--类
    Unity DOTS--面向数据编程前的准备
    C#面向对象--命名空间
    C#面向对象--多态
    C#面向对象--继承
    C#中堆和栈的区别
    sql执行顺序
    cookie session
    栈和队列
    c# 单例模式
  • 原文地址:https://www.cnblogs.com/tofengz/p/13587255.html
Copyright © 2011-2022 走看看