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()
发布了141 篇原创文章 · 获赞 131 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_41621362/article/details/104888455
今日推荐