草庐IT

在线合成车牌照片【模拟车牌,用于车牌识别项目测试】

lzl640 2023-08-28 原文

1、服务发布地址:

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

2、传参说明:

cphm:车牌号码【仅限合规的车牌号码规则】
cpys:车牌颜色: 0=蓝色,1=黄色,2=白色,3=黑色,4=纯绿,6=黄绿
double:是否双层:0=单层 1=双层 【默认单层,仅白色和黄色支持双层车牌】

3、调用效果示例

3.1:蓝牌

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

3.2:黄牌【单层】
http://new.hdsxsc.com:10086/server.php?cphm=冀DSX888&cpys=1

3.3:黄牌【双层】
http://new.hdsxsc.com:10086/server.php?cphm=冀DSX888&cpys=1&double=1

3.4 纯绿
http://new.hdsxsc.com:10086/server.php?cphm=冀DDS8888&cpys=4

3.5 黄绿
http://new.hdsxsc.com:10086/server.php?cphm=冀D88888D&cpys=6

项目库引用:

中国车牌模拟生成器【Python】
https://gitee.com/leijd/chinese_license_plate_generator

项目依赖安装:
./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

服务页面代码:

#!/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)


感谢网友反馈,更新新能源车牌 正则表达式



有关在线合成车牌照片【模拟车牌,用于车牌识别项目测试】的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  5. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  6. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  7. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  8. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  9. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  10. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

随机推荐