Spaces:
Sleeping
Sleeping
add json
Browse files- app.py +15 -13
- config/cn_car/config.json +46 -0
- config/cn_car/config.yaml +1 -1
- config/cn_truck/config.json +13 -0
- config/cn_truck/config.yaml +2 -1
- config/de_car/config.json +48 -0
- config/de_car/config.yaml +1 -1
- config/jp_car/background/jp.jpg +0 -0
- config/jp_car/config.json +57 -0
- config/kr_car/config.json +58 -0
- config/kr_car/config.yaml +2 -1
- config/kr_taxi/config.json +44 -0
- config/kr_taxi/config.yaml +2 -1
- config/kr_truck/config.json +45 -0
- config/us_cali/config.json +49 -0
- yaml2json.py +24 -0
app.py
CHANGED
@@ -1,8 +1,7 @@
|
|
1 |
import os
|
2 |
-
import sys
|
3 |
-
import time
|
4 |
import glob
|
5 |
-
import
|
|
|
6 |
import random
|
7 |
|
8 |
import numpy as np
|
@@ -28,10 +27,10 @@ def resize_height(img, height, nearest=False):
|
|
28 |
return img.resize((new_width, height), Image.NEAREST if nearest else Image.BICUBIC), new_width
|
29 |
|
30 |
|
31 |
-
# load config
|
32 |
def load_config(path):
|
33 |
with open(path, "r") as f:
|
34 |
-
config =
|
35 |
return config
|
36 |
|
37 |
|
@@ -92,14 +91,16 @@ def get_mask(cfg):
|
|
92 |
|
93 |
mask, _ = resize_height(mask, 512)
|
94 |
mask_wo_border = mask.copy()
|
95 |
-
mask_wo_border = mask_wo_border.filter(ImageFilter.MaxFilter(3))
|
96 |
mask = mask.filter(ImageFilter.MaxFilter(5)).filter(ImageFilter.GaussianBlur(1.5))
|
97 |
|
98 |
ord_, _ = resize_height(ord_, 512, nearest=True)
|
99 |
|
100 |
-
plate_bg = get_background(name)
|
|
|
|
|
101 |
# make the mask as alpha channel
|
102 |
-
bg = Image.new("RGBA",
|
103 |
bg.paste(plate_bg, (0, 0))
|
104 |
# hex to rgb
|
105 |
plateTextColor = tuple(int(plateTextColor[i:i + 2], 16) for i in (0, 2, 4))
|
@@ -114,7 +115,7 @@ plates = [f for f in os.listdir(config_path) if os.path.isdir(os.path.join(confi
|
|
114 |
|
115 |
|
116 |
def generate(name):
|
117 |
-
cfg = load_config(os.path.join(config_path, name, "config.
|
118 |
text, bg, mask, ord_ = get_mask(cfg)
|
119 |
return text, bg, mask, ord_
|
120 |
|
@@ -126,10 +127,11 @@ demo = gr.Interface(
|
|
126 |
],
|
127 |
[
|
128 |
gr.Text(label="Plate Text"),
|
129 |
-
gr.Image(label="Background"),
|
130 |
-
gr.Image(label="Mask"),
|
131 |
-
gr.Image(label="Ord"),
|
132 |
-
]
|
|
|
133 |
)
|
134 |
|
135 |
|
|
|
1 |
import os
|
|
|
|
|
2 |
import glob
|
3 |
+
import time
|
4 |
+
import json
|
5 |
import random
|
6 |
|
7 |
import numpy as np
|
|
|
27 |
return img.resize((new_width, height), Image.NEAREST if nearest else Image.BICUBIC), new_width
|
28 |
|
29 |
|
30 |
+
# load config json file
|
31 |
def load_config(path):
|
32 |
with open(path, "r") as f:
|
33 |
+
config = json.load(f)
|
34 |
return config
|
35 |
|
36 |
|
|
|
91 |
|
92 |
mask, _ = resize_height(mask, 512)
|
93 |
mask_wo_border = mask.copy()
|
94 |
+
mask_wo_border = mask_wo_border.filter(ImageFilter.MaxFilter(3))
|
95 |
mask = mask.filter(ImageFilter.MaxFilter(5)).filter(ImageFilter.GaussianBlur(1.5))
|
96 |
|
97 |
ord_, _ = resize_height(ord_, 512, nearest=True)
|
98 |
|
99 |
+
plate_bg = get_background(name)
|
100 |
+
mask_wo_border = mask_wo_border.resize(plate_bg.size)
|
101 |
+
|
102 |
# make the mask as alpha channel
|
103 |
+
bg = Image.new("RGBA", plate_bg.size, (0, 0, 0, 0))
|
104 |
bg.paste(plate_bg, (0, 0))
|
105 |
# hex to rgb
|
106 |
plateTextColor = tuple(int(plateTextColor[i:i + 2], 16) for i in (0, 2, 4))
|
|
|
115 |
|
116 |
|
117 |
def generate(name):
|
118 |
+
cfg = load_config(os.path.join(config_path, name, "config.json"))
|
119 |
text, bg, mask, ord_ = get_mask(cfg)
|
120 |
return text, bg, mask, ord_
|
121 |
|
|
|
127 |
],
|
128 |
[
|
129 |
gr.Text(label="Plate Text"),
|
130 |
+
gr.Image(label="Background", show_label=False, format="png"),
|
131 |
+
gr.Image(label="Mask", show_label=False, format="png"),
|
132 |
+
gr.Image(label="Ord", show_label=False, format="png"),
|
133 |
+
],
|
134 |
+
allow_flagging=False,
|
135 |
)
|
136 |
|
137 |
|
config/cn_car/config.json
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 4,
|
3 |
+
"name": "cn_car",
|
4 |
+
"plateNums": [
|
5 |
+
"0",
|
6 |
+
"1",
|
7 |
+
"2",
|
8 |
+
"3",
|
9 |
+
"4",
|
10 |
+
"5",
|
11 |
+
"6",
|
12 |
+
"7",
|
13 |
+
"8",
|
14 |
+
"9"
|
15 |
+
],
|
16 |
+
"plateChars": [
|
17 |
+
"A",
|
18 |
+
"B",
|
19 |
+
"C",
|
20 |
+
"D",
|
21 |
+
"E",
|
22 |
+
"F",
|
23 |
+
"G",
|
24 |
+
"H",
|
25 |
+
"J",
|
26 |
+
"K",
|
27 |
+
"L",
|
28 |
+
"M",
|
29 |
+
"N",
|
30 |
+
"P",
|
31 |
+
"Q",
|
32 |
+
"R",
|
33 |
+
"S",
|
34 |
+
"T",
|
35 |
+
"U",
|
36 |
+
"V",
|
37 |
+
"W",
|
38 |
+
"X",
|
39 |
+
"Y"
|
40 |
+
],
|
41 |
+
"plateCities": "京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新",
|
42 |
+
"plateTextColor": "#FFFFFF",
|
43 |
+
"plateFormat": [
|
44 |
+
"@A·#####"
|
45 |
+
]
|
46 |
+
}
|
config/cn_car/config.yaml
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
type:
|
2 |
name: "cn_car"
|
3 |
plateNums: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
4 |
plateChars: ["A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"]
|
|
|
1 |
+
type: 4
|
2 |
name: "cn_car"
|
3 |
plateNums: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
4 |
plateChars: ["A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"]
|
config/cn_truck/config.json
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 3,
|
3 |
+
"name": "cn_truck",
|
4 |
+
"multiLine": true,
|
5 |
+
"plateNums": "1234567890",
|
6 |
+
"plateChars": "ABCDEFGHJKLMNPQRSTUVWXYZ",
|
7 |
+
"plateCities": "京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新",
|
8 |
+
"plateTextColor": "#111111",
|
9 |
+
"plateFormat": [
|
10 |
+
"@·A",
|
11 |
+
"#0000"
|
12 |
+
]
|
13 |
+
}
|
config/cn_truck/config.yaml
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
-
type:
|
2 |
name: "cn_truck"
|
3 |
multiLine: true
|
4 |
plateNums: "1234567890"
|
5 |
plateChars: "ABCDEFGHJKLMNPQRSTUVWXYZ"
|
6 |
plateCities: "京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新"
|
|
|
7 |
# format is a string including #, A, 0, 1 and @
|
8 |
# # representing any number and letter
|
9 |
# A representing any letter
|
|
|
1 |
+
type: 3
|
2 |
name: "cn_truck"
|
3 |
multiLine: true
|
4 |
plateNums: "1234567890"
|
5 |
plateChars: "ABCDEFGHJKLMNPQRSTUVWXYZ"
|
6 |
plateCities: "京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新"
|
7 |
+
plateTextColor: "#111111"
|
8 |
# format is a string including #, A, 0, 1 and @
|
9 |
# # representing any number and letter
|
10 |
# A representing any letter
|
config/de_car/config.json
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 1,
|
3 |
+
"name": "de_car",
|
4 |
+
"plateNums": [
|
5 |
+
"1",
|
6 |
+
"2",
|
7 |
+
"3",
|
8 |
+
"4",
|
9 |
+
"5",
|
10 |
+
"6",
|
11 |
+
"7",
|
12 |
+
"8",
|
13 |
+
"9",
|
14 |
+
"0"
|
15 |
+
],
|
16 |
+
"plateChars": [
|
17 |
+
"A",
|
18 |
+
"B",
|
19 |
+
"C",
|
20 |
+
"D",
|
21 |
+
"E",
|
22 |
+
"F",
|
23 |
+
"G",
|
24 |
+
"H",
|
25 |
+
"I",
|
26 |
+
"J",
|
27 |
+
"K",
|
28 |
+
"L",
|
29 |
+
"M",
|
30 |
+
"N",
|
31 |
+
"O",
|
32 |
+
"P",
|
33 |
+
"Q",
|
34 |
+
"R",
|
35 |
+
"S",
|
36 |
+
"T",
|
37 |
+
"U",
|
38 |
+
"V",
|
39 |
+
"W",
|
40 |
+
"X",
|
41 |
+
"Y",
|
42 |
+
"Z"
|
43 |
+
],
|
44 |
+
"plateCities": "",
|
45 |
+
"plateFormat": [
|
46 |
+
"AAA0000"
|
47 |
+
]
|
48 |
+
}
|
config/de_car/config.yaml
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
type:
|
2 |
name: "de_car"
|
3 |
plateNums: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
|
4 |
plateChars: ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
|
|
|
1 |
+
type: 1
|
2 |
name: "de_car"
|
3 |
plateNums: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
|
4 |
plateChars: ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
|
config/jp_car/background/jp.jpg
CHANGED
config/jp_car/config.json
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 0,
|
3 |
+
"name": "jp_car",
|
4 |
+
"plateNums": [
|
5 |
+
"0",
|
6 |
+
"1",
|
7 |
+
"2",
|
8 |
+
"3",
|
9 |
+
"4",
|
10 |
+
"5",
|
11 |
+
"6",
|
12 |
+
"7",
|
13 |
+
"8",
|
14 |
+
"9"
|
15 |
+
],
|
16 |
+
"plateChars": [
|
17 |
+
"は",
|
18 |
+
"ほ",
|
19 |
+
"ね",
|
20 |
+
"せ",
|
21 |
+
"さ",
|
22 |
+
"ひ",
|
23 |
+
"や",
|
24 |
+
"ろ",
|
25 |
+
"ま",
|
26 |
+
"ぬ"
|
27 |
+
],
|
28 |
+
"plateCities": [
|
29 |
+
"長野",
|
30 |
+
"土浦",
|
31 |
+
"神戸",
|
32 |
+
"福岡",
|
33 |
+
"広島",
|
34 |
+
"大阪",
|
35 |
+
"多摩",
|
36 |
+
"品川",
|
37 |
+
"札幌",
|
38 |
+
"沖縄",
|
39 |
+
"東京",
|
40 |
+
"豊田",
|
41 |
+
"横浜",
|
42 |
+
"足立",
|
43 |
+
"静岡",
|
44 |
+
"鈴鹿",
|
45 |
+
"滋賀",
|
46 |
+
"三重",
|
47 |
+
"福山",
|
48 |
+
"愛媛",
|
49 |
+
"千葉",
|
50 |
+
"青森",
|
51 |
+
"群馬"
|
52 |
+
],
|
53 |
+
"plateFormat": [
|
54 |
+
"@000",
|
55 |
+
"A00-00"
|
56 |
+
]
|
57 |
+
}
|
config/kr_car/config.json
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 1,
|
3 |
+
"name": "kr_car",
|
4 |
+
"plateNums": [
|
5 |
+
"0",
|
6 |
+
"1",
|
7 |
+
"2",
|
8 |
+
"3",
|
9 |
+
"4",
|
10 |
+
"5",
|
11 |
+
"6",
|
12 |
+
"7",
|
13 |
+
"8",
|
14 |
+
"9"
|
15 |
+
],
|
16 |
+
"plateChars": [
|
17 |
+
"가",
|
18 |
+
"나",
|
19 |
+
"다",
|
20 |
+
"라",
|
21 |
+
"마",
|
22 |
+
"거",
|
23 |
+
"너",
|
24 |
+
"더",
|
25 |
+
"러",
|
26 |
+
"머",
|
27 |
+
"버",
|
28 |
+
"서",
|
29 |
+
"어",
|
30 |
+
"저",
|
31 |
+
"고",
|
32 |
+
"노",
|
33 |
+
"도",
|
34 |
+
"로",
|
35 |
+
"모",
|
36 |
+
"보",
|
37 |
+
"소",
|
38 |
+
"오",
|
39 |
+
"조",
|
40 |
+
"구",
|
41 |
+
"누",
|
42 |
+
"두",
|
43 |
+
"루",
|
44 |
+
"무",
|
45 |
+
"부",
|
46 |
+
"수",
|
47 |
+
"우",
|
48 |
+
"주",
|
49 |
+
"하",
|
50 |
+
"허",
|
51 |
+
"호"
|
52 |
+
],
|
53 |
+
"plateCities": "",
|
54 |
+
"plateTextColor": "#111111",
|
55 |
+
"plateFormat": [
|
56 |
+
"000A0000"
|
57 |
+
]
|
58 |
+
}
|
config/kr_car/config.yaml
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
-
type:
|
2 |
name: "kr_car"
|
3 |
plateNums: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
4 |
plateChars: ["가", "나", "다", "라", "마", "거", "너", "더", "러", "머", "버", "서", "어", "저", "고", "노", "도", "로", "모", "보", "소", "오", "조", "구", "누", "두", "루", "무", "부", "수", "우", "주", "하", "허", "호",]
|
5 |
plateCities: ""
|
|
|
6 |
# format is a string including #, A, 0, and @
|
7 |
# # representing any number and letter
|
8 |
# A representing any letter
|
|
|
1 |
+
type: 1
|
2 |
name: "kr_car"
|
3 |
plateNums: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
4 |
plateChars: ["가", "나", "다", "라", "마", "거", "너", "더", "러", "머", "버", "서", "어", "저", "고", "노", "도", "로", "모", "보", "소", "오", "조", "구", "누", "두", "루", "무", "부", "수", "우", "주", "하", "허", "호",]
|
5 |
plateCities: ""
|
6 |
+
plateTextColor: "#111111"
|
7 |
# format is a string including #, A, 0, and @
|
8 |
# # representing any number and letter
|
9 |
# A representing any letter
|
config/kr_taxi/config.json
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 1,
|
3 |
+
"name": "kr_taxi",
|
4 |
+
"plateNums": [
|
5 |
+
"0",
|
6 |
+
"1",
|
7 |
+
"2",
|
8 |
+
"3",
|
9 |
+
"4",
|
10 |
+
"5",
|
11 |
+
"6",
|
12 |
+
"7",
|
13 |
+
"8",
|
14 |
+
"9"
|
15 |
+
],
|
16 |
+
"plateChars": [
|
17 |
+
"바",
|
18 |
+
"사",
|
19 |
+
"아",
|
20 |
+
"자"
|
21 |
+
],
|
22 |
+
"plateCities": [
|
23 |
+
"서울",
|
24 |
+
"부산",
|
25 |
+
"대구",
|
26 |
+
"인천",
|
27 |
+
"광주",
|
28 |
+
"대전",
|
29 |
+
"울산",
|
30 |
+
"경기",
|
31 |
+
"강원",
|
32 |
+
"충북",
|
33 |
+
"충남",
|
34 |
+
"전북",
|
35 |
+
"전남",
|
36 |
+
"경북",
|
37 |
+
"경남",
|
38 |
+
"제주"
|
39 |
+
],
|
40 |
+
"plateTextColor": "#111111",
|
41 |
+
"plateFormat": [
|
42 |
+
"@00A0000"
|
43 |
+
]
|
44 |
+
}
|
config/kr_taxi/config.yaml
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
-
type:
|
2 |
name: "kr_taxi"
|
3 |
plateNums: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
4 |
plateChars: ["바", "사", "아", "자"]
|
5 |
plateCities: ["서울", "부산", "대구", "인천", "광주", "대전", "울산", "경기", "강원", "충북", "충남", "전북", "전남", "경북", "경남", "제주"]
|
|
|
6 |
# format is a string including #, A, 0, and @
|
7 |
# # representing any number and letter
|
8 |
# A representing any letter
|
|
|
1 |
+
type: 1
|
2 |
name: "kr_taxi"
|
3 |
plateNums: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
4 |
plateChars: ["바", "사", "아", "자"]
|
5 |
plateCities: ["서울", "부산", "대구", "인천", "광주", "대전", "울산", "경기", "강원", "충북", "충남", "전북", "전남", "경북", "경남", "제주"]
|
6 |
+
plateTextColor: "#111111"
|
7 |
# format is a string including #, A, 0, and @
|
8 |
# # representing any number and letter
|
9 |
# A representing any letter
|
config/kr_truck/config.json
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 0,
|
3 |
+
"name": "kr_truck",
|
4 |
+
"plateNums": [
|
5 |
+
"0",
|
6 |
+
"1",
|
7 |
+
"2",
|
8 |
+
"3",
|
9 |
+
"4",
|
10 |
+
"5",
|
11 |
+
"6",
|
12 |
+
"7",
|
13 |
+
"8",
|
14 |
+
"9"
|
15 |
+
],
|
16 |
+
"plateChars": [
|
17 |
+
"바",
|
18 |
+
"사",
|
19 |
+
"아",
|
20 |
+
"자"
|
21 |
+
],
|
22 |
+
"plateCities": [
|
23 |
+
"서울",
|
24 |
+
"부산",
|
25 |
+
"대구",
|
26 |
+
"인천",
|
27 |
+
"광주",
|
28 |
+
"대전",
|
29 |
+
"울산",
|
30 |
+
"경기",
|
31 |
+
"강원",
|
32 |
+
"충북",
|
33 |
+
"충남",
|
34 |
+
"전북",
|
35 |
+
"전남",
|
36 |
+
"경북",
|
37 |
+
"경남",
|
38 |
+
"제주"
|
39 |
+
],
|
40 |
+
"plateTextColor": "#FFFFFF",
|
41 |
+
"plateFormat": [
|
42 |
+
"@00",
|
43 |
+
"A0000"
|
44 |
+
]
|
45 |
+
}
|
config/us_cali/config.json
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"type": 0,
|
3 |
+
"name": "us_cali",
|
4 |
+
"plateNums": [
|
5 |
+
"1",
|
6 |
+
"2",
|
7 |
+
"3",
|
8 |
+
"4",
|
9 |
+
"5",
|
10 |
+
"6",
|
11 |
+
"7",
|
12 |
+
"8",
|
13 |
+
"9",
|
14 |
+
"0"
|
15 |
+
],
|
16 |
+
"plateChars": [
|
17 |
+
"A",
|
18 |
+
"B",
|
19 |
+
"C",
|
20 |
+
"D",
|
21 |
+
"E",
|
22 |
+
"F",
|
23 |
+
"G",
|
24 |
+
"H",
|
25 |
+
"I",
|
26 |
+
"J",
|
27 |
+
"K",
|
28 |
+
"L",
|
29 |
+
"M",
|
30 |
+
"N",
|
31 |
+
"O",
|
32 |
+
"P",
|
33 |
+
"Q",
|
34 |
+
"R",
|
35 |
+
"S",
|
36 |
+
"T",
|
37 |
+
"U",
|
38 |
+
"V",
|
39 |
+
"W",
|
40 |
+
"X",
|
41 |
+
"Y",
|
42 |
+
"Z"
|
43 |
+
],
|
44 |
+
"plateCities": "",
|
45 |
+
"plateTextColor": "#0E1947",
|
46 |
+
"plateFormat": [
|
47 |
+
"0AAA000"
|
48 |
+
]
|
49 |
+
}
|
yaml2json.py
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import yaml
|
3 |
+
import glob
|
4 |
+
|
5 |
+
# convert yaml to json
|
6 |
+
def yaml_to_json(yaml_file):
|
7 |
+
with open(yaml_file) as f:
|
8 |
+
data = yaml.safe_load(f)
|
9 |
+
# return data
|
10 |
+
basename = yaml_file.split(".")[0]
|
11 |
+
# save json data to a file
|
12 |
+
with open(f"{basename}.json", "w") as f:
|
13 |
+
# utf-8 encoding
|
14 |
+
f.write(json.dumps(data, indent=4, ensure_ascii=False))
|
15 |
+
|
16 |
+
return data
|
17 |
+
|
18 |
+
|
19 |
+
if __name__ == "__main__":
|
20 |
+
# yaml_file = "test.yaml"
|
21 |
+
# yaml_to_json(yaml_file)
|
22 |
+
|
23 |
+
for f in glob.glob("config/*/*.yaml"):
|
24 |
+
yaml_to_json(f)
|