Online synthesis of license plate photos [simulated license plate, used for license plate recognition project testing]

1. Service publishing address:

http://new.hdsxsc.com:10086/server.php?cphm=JiDSX888&cpys=0

2. Instructions for passing parameters:

cphm: license plate number [only for compliant license plate number rules]
cpys: license plate color: 0=blue, 1=yellow, 2=white, 3=black, 4=pure green, 6=yellow-green
double: double-layer or not : 0=single-layer 1=double-layer [default single-layer, only white and yellow support double-layer license plate]

3. Example of call effect

3.1: Blue card

http://new.hdsxsc.com:10086/server.php?cphm=JiDSX888&cpys=0
insert image description here

3.2: Yellow card [single layer]
http://new.hdsxsc.com:10086/server.php?cphm=JiDSX888&cpys=1
insert image description here

3.3: Yellow card [double layer]
http://new.hdsxsc.com:10086/server.php?cphm=JiDSX888&cpys=1&double=1
insert image description here
3.4 Pure green
http://new.hdsxsc.com:10086/server.php? cphm=Ji DDS8888&cpys=4
insert image description here

3.5 Yellow-green
http://new.hdsxsc.com:10086/server.php?cphm=JiD88888D&cpys=6
insert image description here

Project library references:

Chinese license plate simulation generator [Python]
https://gitee.com/leijd/chinese_license_plate_generator

Project dependency installation:
./pip install -U opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
./pip install -U numpy -i https://pypi.tuna.tsinghua.edu .cn/simple
./pip install -U tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple
./pip install -U flask -i https://pypi.tuna.tsinghua.edu.cn /simple

Service page code:

#!/usr/bin/python3
#coding=utf-8
import cv2, os
import argparse
from generate_multi_plate import MultiPlateGenerator
from flask import Flask,request
import base64
import re

app = Flask(__name__)

@app.route("/")#路由:首页
def hello():
    return {
    
    'message':'wellcome to chinese_license_plate_generator api server!'}

@app.route('/server.php',methods=['POST','GET'])#路由/whatever_by_key.php, 接收方法:get,post 都行
def plate_special():
    plate_number = request.values.get('cphm')
    bg_color = request.values.get('cpys')
    double = request.values.get('double')
    
    if(bg_color=='0'):
        bg_color='blue'
    if(bg_color=='1'):
        bg_color='yellow'
    if(bg_color=='4'):
        bg_color='green_car'
    if(bg_color=='6'):
        bg_color='green_truck'
        
    if(double==None):
        double=False
    if(double=='0'):
        double=False
    if(double=='1'):
        double=True
    #按正则表达式,判断, 纠正车牌号颜色
    regex_0_1 = re.compile(r"[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{5}$");                 #普通汽车 蓝/黄
    regex_4 = re.compile(r"[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}[A-Z]{1}[DABCEFGHJK]{1}[A-HJ-NP-Z0-9]{1}[0-9]{4}$");    #新能源 小型车 纯绿
    regex_6 = re.compile(r"[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}[A-Z]{1}[0-9]{5}[DABCEFGHJK]{1}$");                     #新能源 大型车 黄绿

    if(regex_4.match(plate_number)!=None):
        bg_color='green_car'

    if(regex_6.match(plate_number)!=None):
        bg_color='green_truck'
        
    if(not(regex_0_1.match(plate_number)!=None or regex_4.match(plate_number)!=None or regex_6.match(plate_number)!=None)):
        return '<img src="号码规则无效"></img>'

    generator = MultiPlateGenerator('plate_model', 'font_model')
    img = generator.generate_plate_special(plate_number, bg_color, double)
    image_code = str(base64.b64encode(cv2.imencode('.jpg', img)[1]))[2:-1]
    return '<img src="data:image/jpeg;base64,'+image_code+'"></img>'

if __name__ == "__main__":
    app.run(host='0.0.0.0',port=10086)


Thanks for the feedback from netizens, update the regular expression of the new energy license plate

insert image description here
insert image description here
insert image description here

Guess you like

Origin blog.csdn.net/lzl640/article/details/125312808