python:批量分割图片(把一张图片横向平均分割成7张)

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. 结果:(只显示了两个文件夹的结果,其他依此类推)

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_39450145

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值