批量随机裁剪
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)