1.img.crop((x1, y1, x2, y2)) 进行图片的裁剪
参数说明: x1, y1, x2, y2 表示图片的大小
2. img.resize((w, h)) # 进行图片的维度变化
参数说明:(w, h) 表示变换以后的图片的大小
代码说明:创建一个新的文件,对每张图片进行1/4 - 3/4进行裁剪, 对裁剪以后的图片进行图片维度的变化
第一步:进行文件,然后创建一个文件用于进行存储,如果不存在,就使用os.mkdir 进行创建
第二步:使用img.crop() 进行图片的裁剪,使用img.resize() 进行图片的尺度变换,img.save(path) 进行图片的保存
# -*- coding: utf-8 -*- ''' Created on 2019/7/5/0005 9:33 @Author : Sheng1994 ''' import os from PIL import Image def crop_from_image(src_file, dec_file, crop_size): img = Image.open(src_file) # 图片打开 img_width, img_height = img.size # 图片的尺度 x_start = int(img_width / 4) # 进行图片的裁剪 y_start = int(img_height / 4) x_move = x_start + int(img_width / 2) y_move = y_start + int(img_height / 2) box = (x_start, y_start, x_move, y_move) img_crop = img.crop(box) img_resize_crop = img_crop.resize(crop_size) # 进行尺度的变化 img_resize_crop.save(dec_file) # 进行图片的保存 def folder_for_crop(db_folder, result_folder, crop_size): number = 0 if not os.path.exists(result_folder): os.mkdir(result_folder) # 第一步:进行文件的读入 for people_folder in os.listdir(db_folder): number += 1 src_people_path = db_folder + os.sep + people_folder dec_people_path = result_folder + os.sep + people_folder if not os.path.exists(dec_people_path): os.mkdir(dec_people_path) count = 0 step = 0 for vedio_folder in os.listdir(src_people_path): step += 1 src_vedio_folder = src_people_path + os.sep + vedio_folder dec_vedio_folder = dec_people_path + os.sep + vedio_folder if not os.path.exists(dec_vedio_folder): os.mkdir(dec_vedio_folder) for img_file in os.listdir(src_vedio_folder): count += 1 src_img_folder = src_vedio_folder + os.sep + img_file dec_img_folder = dec_vedio_folder + os.sep + img_file # 第二步:进行图片的裁剪操作 crop_from_image(src_img_folder, dec_img_folder, crop_size) def run(): db_folder = 'image\origin' result_folder = 'image\result' folder_for_crop(db_folder, result_folder, (47, 55)) if __name__ == '__main__': run()