Python图像处理库PIL初识

本是古典 何须时尚 2023-07-15 09:04 132阅读 0赞

常用Python图像处理库

在众多python语言图像处理库中,opencv-python和PIL两大库无疑是其中的佼佼者。遗憾的是,PIL目前已经长时间不在更新,但是幸运的是,PIL中一个分支Pillow一直再持续更新,而且Pillow的安装和使用都是比较简单的。

安装

  1. pip install pillow

具体使用

测试图像

在这里插入图片描述

打开一个图像

  1. from PIL import Image, ImageFilter, ImageOps
  2. import numpy as np
  3. img = Image.open("test.jpg", mode="r") # mode可以不给,给必须是"r"

img常用的属性

  1. print(img.size) # (640, 426)
  2. print(img.format) # JPEG,图像格式
  3. print(img.mode) # RGB
  4. print(img.info) # 这个里面的信息目前没搞懂是啥意思

mode的较详细介绍参见

RGB转成灰度图

  1. img.convert("L")

效果如下:
在这里插入图片描述

图像滤波

  1. img.filter(ImageFilter.SHARPEN)

常见的滤波模式如下:






























ImageFilter.BLUR 模糊滤波
ImageFilter.CONTOUR 轮廓滤波
ImageFilter.EMBOSS 浮雕滤波
ImageFilter.GaussianBlur 高斯模糊
ImageFilter.MedianFilter 中值滤波
ImageFilter.SHARPEN 锐化

更多滤波模式以及效果参见

尺寸缩放

  1. img.resize((224, 224))

从np数组中读取图像

  1. img2array = np.asarray(img) # 把读取到的图像转成arrary数组
  2. img = Image.fromarray(img2array) # 从np数组中读取图像

注意:从np数组中读取的图像不在具有format属性,打印为None

图像旋转

  1. img.rotate(60)

保存操作过后的图像
Image所有的操作都是在副本上进行的,如果你想保存操作过后的图像,必须用一个变量接收操作过后的图像在保存

  1. img_rotate = img.rotate(60)
  2. img_rotate.save("rotate.jpg")

展示图像

  1. img.show()

发表评论

表情:
评论列表 (有 0 条评论,132人围观)

还没有评论,来说两句吧...

相关阅读