diff --git a/model_predict.py b/model_predict.py new file mode 100644 index 0000000..9ef0b26 --- /dev/null +++ b/model_predict.py @@ -0,0 +1,46 @@ +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'}