69 lines
2.7 KiB
Python
69 lines
2.7 KiB
Python
# -*- coding:utf-8 -*-
|
|
# @Author len
|
|
# @Create 2023/11/5 16:01
|
|
|
|
|
|
import os
|
|
import random
|
|
from PIL import Image
|
|
|
|
# 从图片中提取的颜色代码
|
|
color_codes = [
|
|
"#FFFFCC", "#CFFFFF", "#FFCCCC",
|
|
"#99CCCC", "#FFCC99", "#FFCCCC",
|
|
"#F99999", "#996699", "#FFCCCC",
|
|
"#CC9999", "#FFFFCC", "#CCCC99",
|
|
"#FFCCCC", "#FFFF99", "#CCCCFF",
|
|
"#0899CC", "#CCCCCC", "#FF6666"
|
|
]
|
|
|
|
def add_image_to_random_solid_background(image_path, output_path, background_size):
|
|
# 随机选择一个背景颜色
|
|
background_color = random.choice(color_codes)
|
|
background_color = tuple(int(background_color[i:i+2], 16) for i in (1, 3, 5)) # 转换为RGB
|
|
|
|
try:
|
|
# 打开原始图片
|
|
with Image.open(image_path) as image:
|
|
# 创建一个新的随机颜色背景图片
|
|
background = Image.new('RGB', background_size, background_color)
|
|
# 计算原始图片在新背景中的位置
|
|
x = (background_size[0] - image.size[0]) // 2
|
|
y = (background_size[1] - image.size[1]) // 2
|
|
# 将原始图片粘贴到背景图片上
|
|
background.paste(image, (x, y), image if image.mode == 'RGBA' else None)
|
|
# 保存最终图片
|
|
background.save(output_path)
|
|
print(f"Processed and saved to {output_path}")
|
|
except Exception as e:
|
|
print(f"Error processing {image_path}: {e}")
|
|
|
|
def batch_process_images_with_random_background(source_folder, output_folder, background_size):
|
|
# 确保输出文件夹存在
|
|
if not os.path.exists(output_folder):
|
|
os.makedirs(output_folder)
|
|
|
|
# 遍历源文件夹中的所有图片文件
|
|
for image_filename in os.listdir(source_folder):
|
|
if image_filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
|
|
image_path = os.path.join(source_folder, image_filename)
|
|
output_path = os.path.join(output_folder, image_filename)
|
|
# 为每个图片文件添加随机颜色背景
|
|
add_image_to_random_solid_background(image_path, output_path, background_size)
|
|
|
|
# 源文件夹路径,存放原始图片
|
|
source_folder = r'D:\Waste\嵌入式\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\04-车牌参考图\车牌'
|
|
|
|
# 输出文件夹路径,存放处理后的图片
|
|
output_folder = r'D:\Waste\嵌入式\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\04-车牌参考图\001'
|
|
|
|
# 背景尺寸
|
|
background_size = (800, 480)
|
|
|
|
# 执行批处理函数
|
|
batch_process_images_with_random_background(source_folder, output_folder, background_size)
|
|
|
|
|
|
|
|
|