随机生成车牌数据

from PIL import Image, ImageDraw, ImageFont
import random
import os

# 字符集
CH_PLATE_CODE = [
    "京", "沪", "津", "渝", "冀", "晋", "蒙", "辽", "吉", "黑",
    "苏", "浙", "皖", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤",
    "桂", "琼", "川", "贵", "云", "藏", "陕", "甘", "青", "宁",
    "新", "挂", "学", "警", "军", "应", "急", "民", "航", "港",
    "澳", "领", "使",
    "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
    "A", "B", "C", "D", "E", "F", "G", "H", "J", "K",
    "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V",
    "W", "X", "Y", "Z", "I", "O"
]

# 创建保存图像的文件夹
output_dir = "1"
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

# 加载字体,使用 DejaVu 系列字体
font_path = "/usr/share/fonts/truetype/win/simsun.ttf"  # 你可以换成其他支持中文的字体
font = ImageFont.truetype(font_path, 15)  # 设置字体大小

# 生成1000张图片
for i in range(1000):
    # 创建图像
    image = Image.new('RGB', (120, 24), (255, 255, 255))  # 白色背景
    draw = ImageDraw.Draw(image)

    # 随机选择7-8个字符
    num_chars = random.randint(7,7)
    chars = random.sample(CH_PLATE_CODE, num_chars)
    if i %50 == 0:
        num = i//50%10
        chars[3:] = ["%d"%num for k in range(4)]
        print(chars)
    # 计算每个字符的位置
    x_offset = 2
    name_img=''
    for char in chars:
        # 获取字符的边界框
        name_img+=char
        bbox = font.getbbox(char)
        char_width = bbox[2] - bbox[0]  # 字符宽度
        draw.text((x_offset, 2), char, font=font, fill=(0, 0, 0))  # 黑色文字
        x_offset += char_width + 2  # 字符之间加点间隔

    # 保存图像,使用索引命名
    image.save(os.path.join(output_dir, f"{name_img}.png"))

print("1000张图片已生成!")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值