本文介绍的图像的旋转,使用PIL的Image类的接口函数transpose()完成,直接在入参中指定变换方式即可,不仅支持上下、左右翻转;也支持逆时针90、180、270等角度的旋转。
# -*- coding: utf-8 -*-
from PIL import Image
import os
file_dir = 'train_img/png_da_all/' # 原始图片路径
rotate_180 = 'train_img/rotate_180/' # 保存路径
for img_name in os.listdir(file_dir):
img_path = file_dir + img_name # 批量读取图片
# print(img_path)
img = Image.open(img_path)
LEFT_RIGHT = im.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转
TOP_BOTTOM = im.transpose(Image.FLIP_TOP_BOTTOM) # 上下翻转
rotated_90 = img.transpose(Image.ROTATE_90) # 旋转90度
rotated_180 = img.transpose(Image.ROTATE_180) # 旋转180度
rotated_270 = img.transpose(Image.ROTATE_270) # 旋转270度
rotated_180.save(rotate_180 + '180_' + img_name) # 保存旋转后的图片
f = open('train_img/180.txt', 'a')
f.write('180_' + img_name + ' ' + '180' + '\n') # 写入txt标签文件:imagename + 空格 + 角度
print('finish')
2、图像的旋转使用函数rotate(),在入参中直接指定按逆时针旋转的角度即可,示例如下:
#-*- coding: UTF-8 -*-
from PIL import Image
import os
file_dir = 'train_img/png_da_all/' # 原始图片路径
rotate_45 = 'train_img/rotate_45/' # 保存路径
for img_name in os.listdir(file_dir):
img_path = file_dir + img_name 批量读取图片
# print(img_path)
img = Image.open(img_path)
im_rotate = img.rotate(45) # 指定逆时针旋转的角度
im_rotate.save(rotate_45 + '45_' + img_name) # 保存旋转后的图片