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))
posted @ 2020-08-30 23:21  tofengz  阅读(556)  评论(0编辑  收藏  举报