import os from PIL import Image, ImageDraw def draw_centered_red_box(image, percentage=0.8, color=(255, 0, 0)): """ 在图片上绘制一个红色框,框住指定比例的面积。 image: PIL Image 对象 percentage: 正方形框的面积占图片面积的比例(0-1之间) color: 框的颜色 (R, G, B) """ w, h = image.size # 计算正方形的边长 box_size = int((w * h * percentage) ** 0.5) half_box = box_size // 2 # 确定框的中心点 center_x, center_y = w // 2, h // 2 # 计算正方形的边界 left = max(center_x - half_box, 0) top = max(center_y - half_box, 0) right = min(center_x + half_box, w) bottom = min(center_y + half_box, h) # 在图片上绘制红色框 draw = ImageDraw.Draw(image) draw.rectangle([left, top, right, bottom], outline=color, width=3) # 边框宽度为 3 像素 return image # 文件夹路径 input_folder = "output10" output_folder = "output10_with_red_box" os.makedirs(output_folder, exist_ok=True) # 遍历文件夹中的图片 for filename in os.listdir(input_folder): if filename.lower().endswith(('.png', '.jpg', '.jpeg')): file_path = os.path.join(input_folder, filename) img = Image.open(file_path) # 添加红色框 img_with_box = draw_centered_red_box(img, percentage=0.8) # 保存结果 output_path = os.path.join(output_folder, filename) img_with_box.save(output_path) print("处理完成,已保存带框的图片到 'output10_with_red_box' 文件夹。")