Pillow图像几何变换
Pillow图像几何变换
图像的几何变换主要包括图像翻转、图像旋转和图像变换操作,Image 类提供了处理这些操作的函数 transpose()、rotate() 和 transform(),下面分别对它们进行讲解。
transpose图像翻转
transpose()翻转操作该函数可以实现图像的垂直、水平翻转
返回一个新的Image对象
语法格式如下:
Image.transpose(method)
method 参数决定了图片要如何翻转,参数值如下:
Image.FLIP_LEFT_RIGHT:左右水平翻转;
Image.FLIP_TOP_BOTTOM:上下垂直翻转;
Image.ROTATE_90:图像旋转 90 度;
Image.ROTATE_180:图像旋转 180 度;
Image.ROTATE_270:图像旋转 270 度;
Image.TRANSPOSE:图像转置;
Image.TRANSVERSE:图像横向翻转
1 | from PIL import Image |
rotate()任意角度旋转
当我们想把图像旋转任意角度时,可以使用 rotate() 函数,
产生一张规定大小的新图像
语法格式如下:
Image.rotate(angle, resample=PIL.Image.NEAREST, expand=None, center=None, translate=None, fillcolor=None)
参数说明如下:
angle:表示任意旋转的角度;
resample:重采样滤波器,默认为 PIL.Image.NEAREST 最近邻插值方法;
expand:可选参数,表示是否对图像进行扩展,如果参数值为 True 则扩大输出图像,如果为 False 或者省略,则表示按原图像大小输出;
center:可选参数,指定旋转中心,参数值是长度为 2 的元组,默认以图像中心进行旋转;
translate:参数值为二元组,表示对旋转后的图像进行平移,以左上角为原点;
fillcolor:可选参数,填充颜色,图像旋转后,对图像之外的区域进行填充。
1 | from PIL import Image |
transform()图像变换
transform()图像变换该函数能够对图像进行变换操作,通过指定的变换方式,产生一张规定大小的新图像
语法格式如下:
Image.transform(size, method, data=None, resample=0)
参数说明:
size:指定新图片的大小 (元组);
method:指定图片的变化方式,比如 Image.EXTENT 表示矩形变换;
data:该参数用来给变换方式提供所需数据;
resample:图像重采样滤波器,默认参数值为 PIL.Image.NEAREST。
1 | from PIL import Image |