python 图像处理类库 PIL (一)

PIL(Python Imaging Library,图像处理类库) 提供了通用的图像处理功能,以及大量有用的基本图像操做,好比:打开显示,灰度转换,图像缩放,旋转,裁剪等。本文并包含 PIL 全部功能模块的讲解,而是从实用角度给出最经常使用的方法。要获取 PIL 全部功能模块的文档,可参考文末给出的连接。python

1. 安装

pip install Pillow
复制代码

导入:git

from PIL import Image
复制代码

2. 基本使用

2.1 打开图片

image = Image.open("dog.jpeg")
复制代码

2.2 显示图片

image.show()
复制代码

dog.jpeg 可将此图保存到电脑,以运行本文的代码

2.3 灰度变换

不会改变原来数据,所以须要定义新变量保存灰度化后的图片数据。github

image_gray = image.convert("L")
复制代码

2.4 缩略图

改变原来数据,但保存前,不会改变磁盘上的图片。微信

width = 80
height = 80
size = (width, height)
image.thumbnail(size)
复制代码

2.5 保存图片

image_gray.save("dog_gray.jpeg")
image.save("dog_thumb.jpeg")
复制代码

3. 几何变换

3.1 缩放

缩略图方法 thumbnail(size) 的底层调用,不一样的是,缩放不会改变原来数据。post

image_gray_resize = image_gray.resize((80, 80))
复制代码

3.2 旋转

image_gray_rotate = image_gray.rotate(90)
复制代码

3.3 翻转(镜像)

3.3.1 水平翻转

image_gray_flip_h = image_gray.transpose(Image.FLIP_LEFT_RIGHT)
复制代码

3.3.2 垂直翻转

image_gray_flip_v = image_gray.transpose(Image.FLIP_TOP_BOTTOM)
复制代码

3.4 裁剪

虽然裁剪不属于几何变换的范畴,可是在应用场景上,咱们经常和 缩放,旋转,镜像等几何变换,一块儿用。例如,训练 CNN 图像分类,对有限的训练集数据进行扩充加强,以提升模型的范化能力,得到更佳的模型表现。网站

img = Image.open("dog.jpeg")

print("origin image size\nwidth: {}\nheight: {}".format(*img.size))

crop_box = (80, 80, 240, 240)

img_crop = img.crop(crop_box)

print("cropped image size\nwidth: {}\nheight: {}".format(*img_crop.size))

img_crop.save("dog_crop.jpeg")
复制代码
origin image size
width: 320
height: 320
cropped image size
width: 160
height: 160
复制代码

传送门

参考


坚持写专栏不易,若是以为本文对你有帮助,记得点个赞。感谢支持!spa


微信扫描二维码 获取最新技术原创3d

相关文章
相关标签/搜索