1. 目标:把C:\ResNet50\Jaffe_data_gan目录下的7个文件夹里的所有图片,都横向平均分割成7张,然后只保存中间的5张
2. 代码: crop_image2.py
#python install pillow
import os
from PIL import Image
#分割图片
def cut_image(image,count):
width, height = image.size
item_width = int(width / count)
item_height = height
box_list = []
# (left, upper, right, lower)
for i in range(1,count-1): #只保存中间的5张(第0张、第6张舍去)
box = (i*item_width,0,(i+1)*item_width,item_height)
box_list.append(box)
image_list = [image.crop(box) for box in box_list]
return image_list
#保存分割后的图片
def save_images(image_list,dir_name,file_name):
index = 1
for image in image_list:
image.save(dir_name+'__'+ file_name+'__' + str(index) + '.png', 'PNG')
index += 1
if __name__ == '__main__':
rootdir="C:\ResNet50\Jaffe_data_gan"
#获取rootdir目录下的文件名清单
list=os.listdir(rootdir)
for i in range(0,len(list)): #遍历目录下的所有文件夹
dir_path=os.path.join(rootdir,list[i]) #文件夹的路径
if os.path.isdir(dir_path): #判断是否为文件夹
dir_name=list[i] #获得此文件夹的名字
files=os.listdir(dir_path) #遍历此文件夹下的所有文件
for file_name in files:
file_path=os.path.join(dir_path,file_name) #文件的路径(图片保存的地址)
image = Image.open(file_path) #读取一张图片
image_list = cut_image(image,7) #分割图片
save_images(image_list,dir_name,file_name) #保存分割后的图片
3. 文件目录如下所示:(只显示了两个文件夹里的内容,其他依此类推)
4. 结果:(只显示了两个文件夹的结果,其他依此类推)