import cv2
import os
import random
input_folder = 'JPEGImages'
output_folder = 'images'
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 定义随机裁剪函数
def random_crop(image, crop_size):
h, w, _ = image.shape
if h < crop_size or w < crop_size:
return None
x = random.randint(0, h - crop_size)
y = random.randint(0, h - crop_size)
# 使用切片操作进行图像裁剪
cropped_image = image[x: x+crop_size, y: y + crop_size, :]
return cropped_image
# 定义随机裁剪的尺寸
crop_size = 180
# 遍历输入文件夹中的图像
for file in os.listdir(input_folder):
if file.endswith(('.jpg', '.jpeg', '.png')):
image_path = os.path.join(input_folder, file)
image = cv2.imread(image_path)
# 调用随机裁剪函数
cropped_image = random_crop(image, crop_size)
if cropped_image is not None:
output_path = os.path.join(output_folder, file)
cv2.imwrite(output_path, cropped_image)
print("随机裁剪完成,保存到", output_folder)
这段代码运行前提需要默认安装了opencv的库,并且如果图像的大小小于裁剪尺寸的话,就默认不能进行裁剪