You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
2.0 KiB
47 lines
2.0 KiB
import cv2
|
|
import paddle as paddle
|
|
import numpy as np
|
|
license_plate = cv2.imread('./车牌.png')
|
|
gray_plate = cv2.cvtColor(license_plate, cv2.COLOR_RGB2GRAY)
|
|
ret, binary_plate = cv2.threshold(gray_plate, 175, 255, cv2.THRESH_BINARY)
|
|
result = []
|
|
for col in range(binary_plate.shape[1]):
|
|
result.append(0)
|
|
for row in range(binary_plate.shape[0]):
|
|
result[col] = result[col] + binary_plate[row][col] / 255
|
|
character_dict = {}
|
|
num = 0
|
|
i = 0
|
|
while i < len(result):
|
|
if result[i] == 0:
|
|
i += 1
|
|
else:
|
|
index = i + 1
|
|
while result[index] != 0:
|
|
index += 1
|
|
character_dict[num] = [i, index - 1]
|
|
num += 1
|
|
i = index
|
|
|
|
for i in range(8):
|
|
if i == 2:
|
|
continue
|
|
padding = (170 - (character_dict[i][1] - character_dict[i][0])) / 2
|
|
ndarray = np.pad(binary_plate[:, character_dict[i][0]:character_dict[i][1]], ((0, 0), (int(padding), int(padding))),
|
|
'constant', constant_values=(0, 0))
|
|
ndarray = cv2.resize(ndarray, (20, 20))
|
|
cv2.imwrite('./' + str(i) + '.png', ndarray)
|
|
|
|
|
|
def load_image(path):
|
|
img = paddle.dataset.image.load_image(file=path, is_color=False)
|
|
img = img.astype('float32')
|
|
img = img[np.newaxis,] / 255.0
|
|
return img
|
|
match = {'A':'A','B':'B','C':'C','D':'D','E':'E','F':'F','G':'G','H':'H','I':'I','J':'J','K':'K','L':'L','M':'M','N':'N',
|
|
'O':'O','P':'P','Q':'Q','R':'R','S':'S','T':'T','U':'U','V':'V','W':'W','X':'X','Y':'Y','Z':'Z',
|
|
'yun':'云','cuan':'川','hei':'黑','zhe':'浙','ning':'宁','jin':'津','gan':'赣','hu':'沪','liao':'辽','jl':'吉','qing':'青','zang':'藏',
|
|
'e1':'鄂','meng':'蒙','gan1':'甘','qiong':'琼','shan':'陕','min':'闽','su':'苏','xin':'新','wan':'皖','jing':'京','xiang':'湘','gui':'贵',
|
|
'yu1':'渝','yu':'豫','ji':'冀','yue':'粤','gui1':'桂','sx':'晋','lu':'鲁',
|
|
'0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6','7':'7','8':'8','9':'9'}
|