Files

46 lines
1.2 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
生成纯合成车牌(无场景背景)作为 CUT Domain A
============================================
独立于 CCPD 原图,直接调用车牌生成器渲染纯车牌图像。
"""
import sys
import os
import random
from pathlib import Path
import cv2
import numpy as np
# 路径解析:定位 chinese_license_plate_generator
_SCRIPT_DIR = Path(__file__).resolve().parent # .../CCPD_SPE_GEN/cv_pipeline/
_PROJECT_DIR = _SCRIPT_DIR.parent.parent # .../ICE_Dataset/
_GENERATOR_DIR = _PROJECT_DIR / 'chinese_license_plate_generator'
if str(_GENERATOR_DIR) not in sys.path:
sys.path.insert(0, str(_GENERATOR_DIR))
from generate_multi_plate import MultiPlateGenerator
random.seed(42)
np.random.seed(42)
g = MultiPlateGenerator(
str(_GENERATOR_DIR / 'plate_model'),
str(_GENERATOR_DIR / 'font_model')
)
out = 'gan_data/domain_A_synthetic/police_pure'
os.makedirs(out, exist_ok=True)
for i in range(500):
num, bg, _ = g.generate_plate_number()
# 强制police类型
if '警' not in num:
num = num[:6] + '警'
img = g.generate_plate_special(num, 'white', False)
cv2.imwrite(f'{out}/synth_{i:04d}.jpg', img)
print(f'Done: {out} ({len(os.listdir(out))} images)')