Python图像处理库PIL初识
常用Python图像处理库
在众多python语言图像处理库中,opencv-python和PIL两大库无疑是其中的佼佼者。遗憾的是,PIL目前已经长时间不在更新,但是幸运的是,PIL中一个分支Pillow一直再持续更新,而且Pillow的安装和使用都是比较简单的。
安装
pip install pillow
具体使用
测试图像
打开一个图像
from PIL import Image, ImageFilter, ImageOps
import numpy as np
img = Image.open("test.jpg", mode="r") # mode可以不给,给必须是"r"
img常用的属性
print(img.size) # (640, 426)
print(img.format) # JPEG,图像格式
print(img.mode) # RGB
print(img.info) # 这个里面的信息目前没搞懂是啥意思
mode的较详细介绍参见
RGB转成灰度图
img.convert("L")
效果如下:
图像滤波
img.filter(ImageFilter.SHARPEN)
常见的滤波模式如下:
ImageFilter.BLUR | 模糊滤波 |
---|---|
ImageFilter.CONTOUR | 轮廓滤波 |
ImageFilter.EMBOSS | 浮雕滤波 |
ImageFilter.GaussianBlur | 高斯模糊 |
ImageFilter.MedianFilter | 中值滤波 |
ImageFilter.SHARPEN | 锐化 |
更多滤波模式以及效果参见
尺寸缩放
img.resize((224, 224))
从np数组中读取图像
img2array = np.asarray(img) # 把读取到的图像转成arrary数组
img = Image.fromarray(img2array) # 从np数组中读取图像
注意:从np数组中读取的图像不在具有format属性,打印为None
图像旋转
img.rotate(60)
保存操作过后的图像
Image所有的操作都是在副本上进行的,如果你想保存操作过后的图像,必须用一个变量接收操作过后的图像在保存
img_rotate = img.rotate(60)
img_rotate.save("rotate.jpg")
展示图像
img.show()
还没有评论,来说两句吧...