数据增强之随机裁剪

批量随机裁剪

import os
from PIL import Image
import matplotlib.pyplot as plt
import random
import numpy as np

def random_crop(image):
    min_ratio = 0.4
    max_ratio = 0.7
    w, h = image.size
    ratio = random.random()
    scale = min_ratio + ratio * (max_ratio - min_ratio)
    new_h = int(h * scale)
    new_w = int(w * scale)
    y = np.random.randint(0, h - new_h)
    x = np.random.randint(0, w - new_w)
    image = image.crop((x, y, x + new_w, y + new_h))
    return image

def data_handle(image_path,save_path):
    image = Image.open(image_path)
    if image.mode is not 'RGB':
        image=image.convert('RGB')
    res = random_crop(image)
    res.save(save_path)  # 保存新图
    return res

#data_handle('D:\PycharmProjects\Classification1\datasets/1.jpg','D:\PycharmProjects\Classification1\datasets/10.jpg')
#print((random.random()*10)//0.5)


class_names = os.listdir('D:\PycharmProjects\Classification1\datasets/train3')
for i in range(20):
        flodername = os.listdir('D:\PycharmProjects\Classification1\datasets/train3/'+class_names[i])
        path='D:\PycharmProjects\Classification1\datasets/train3/'+class_names[i]+'/1'
        print(path)
        file_list = os.listdir(path)
        print(file_list)
        for p in range(100):
            des='D:\PycharmProjects\Classification1\datasets/train3/'+class_names[i]+'/1/'+file_list[p]
            sec='D:\PycharmProjects\Classification1\datasets/train4/'+class_names[i]+'/'+str(p*100+101)+'.jpg'
            print(des)
            print(sec)
            data_handle(des,sec)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值