python3图片处理之pillow库

发布时间 2024-01-10 16:52:59作者: carol2014

pillow库简单使用

from PIL import Image, ImageFilter

# pillow库
img = Image.open("../../files/1.jpg")

# 通道
print(img.getbands())  # ('R', 'G', 'B')
print(img.getbbox())  # (0, 0, 690, 517)
# 图片的尺寸
print(img.size)  # (690, 517)
# 图片的模式 取值'1','L','RGB'或'CMYK'
print(img.mode)  # RGB
# 图片的格式
print(img.format)  # JPEG
# 辅助信息
print(img.info)  # 辅助信息
# 图像数据
data = img.getdata()
print(len(data))  # 356730
# 图像中的最小和最大值
print(img.getextrema())  # 356730

# 图片显示,调用操作系统自带的图片浏览器来打开图片
# img.show()

# 图片保存
img.save("../../files/gen/flower.png")

# 改变尺寸
img_resize = img.resize((256, 256), Image.Resampling.BILINEAR)
img_resize.save("../../files/gen/flower-plot-resize.jpg")


def deffun(c):
    return c * 0.2  # 改变了亮度


# 处理图像中的每一个像素点
im_eval = Image.eval(img, deffun)
im_eval.save("../../files/gen/flower-plot-eval.jpg")

# 复制图像
im_copy = img.copy()
im_copy.save("../../files/gen/flower-plot-copy.jpg")

# 裁剪图像
box = [0, 0, 650, 400]  # 650(长)400(高)
im_crop = img.crop(box)
im_crop.save("../../files/gen/flower-plot-crop.jpg")

# 滤镜
im_filter = img.filter(ImageFilter.BLUR)
im_filter.save("../../files/gen/flower-plot-blur.jpg")

matplotlib库图片处理

import matplotlib.pyplot as plt

image = plt.imread("../../files/1.jpg")
print(image.shape, type(image))  # (517, 690, 3)
image_crop = image[300:, ::, ::]
plt.axis("off")

plt.imshow(image_crop)
# 显示
# plt.show()
# 图形数据作为绘图保存
# plt.savefig("../../files/gen/flower-plt.jpg")

# 处理过的图形数据作为图片保存
plt.imsave("../../files/gen/flower-plt.jpg", image_crop)