Spaces:
Sleeping
Sleeping
import os | |
from PIL import Image | |
import random | |
from pathlib import Path | |
# Define the source and destination directories | |
src_dir = Path('dataset/parents') | |
dst_dir = Path('dataset/crops') | |
dst_dir.mkdir(parents=True, exist_ok=True) | |
# Define the scale | |
scale = (0.5, 0.8) | |
# Loop over all images in the source directory | |
for img_file in src_dir.glob('*.jpg'): | |
# Open the image | |
img = Image.open(img_file) | |
width, height = img.size | |
# Apply the transform 10 times to get 10 random crops | |
for i in range(3): | |
# Calculate random width and height | |
new_width = random.randint(int(width * scale[0]), int(width * scale[1])) | |
new_height = random.randint(int(height * scale[0]), int(height * scale[1])) | |
# Calculate random position for the crop | |
left = random.randint(0, width - new_width) | |
top = random.randint(0, height - new_height) | |
# Perform the crop | |
cropped_img = img.crop((left, top, left + new_width, top + new_height)) | |
# Resize the cropped image to 224x224 | |
resized_img = cropped_img.resize((224, 224)) | |
# Save the resized image with coordinates in the filename | |
resized_img_file = dst_dir / f'{img_file.stem}_crop{i+1}_{left}_{top}_{left+new_width}_{top+new_height}.jpg' | |
resized_img.save(resized_img_file) |