Как сделать контрольную сумму для распознавания автомобильных номерных знаков в Сингапуре с Python - PullRequest
0 голосов
/ 03 августа 2020

Я умею распознавать автомобильные номера и извлекать их значения. Иногда результаты неточны, поскольку я использую OCR для распознавания. Я использую контрольную сумму, чтобы обеспечить печать и просмотр только правильных результатов. После расчета контрольной суммы мне нужно использовать другую формулу, чтобы получить последнюю букву таблички. совпадают с этими 19 буквами, A = 0, Z = 1, Y = 2, X = 3, U = 4, T = 5, S = 6, R = 7, P = 8, M = 9, L = 10, K = 11, J = 12, H = 13, G = 14, E = 15, D = 16, C = 17, B = 18. Есть ли способ использовать al oop, чтобы объявлять значения этих букв вместо того, чтобы делать это вручную? Пожалуйста, помогите. Спасибо.

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Вы можете использовать список и выполнять поиск в соответствии с вашими потребностями.

Список выглядит следующим образом:

plate_letter_list = ['A', 'Z', 'Y', 'X', 'U', 'T', 'S', 'R', 'P', 'M', 'L', 'K', 'J', 'H', 'G', 'E', 'D', 'C', 'B']

Случай 1: значение поиска из буквы

Если вам нужно найти значение numeri c, связанное с буквой, используйте метод index:

letter = 'T'
print(plate_letter_list.index(letter))
>> 5

Случай 2: Искать букву из значения

Если вам нужно найдите букву, связанную со значением numeri c, используйте ее как индекс:

value = 13
print(plate_letter_list[value])
>> H
0 голосов
/ 03 августа 2020

Есть два способа поиска этих значений. Один из них - использовать тип данных List , например, @sal. Другой способ - использовать Словарь тип данных

**

Решение с использованием List Datatype

**

pl_vals_list = ['A', 'Z', 'Y', 'X', 'U', 'T', 'S', 'R', 'P', 'M', 'L', 'K', 'J', 'H', 'G', 'E', 'D', 'C', 'B']

Затем вы можете выполнить поиск по позиции или значению

Для поиска по позиции , вы получите значение, которое вы присвоили алфавиту.

print(pl_vals_list[0]). В результате получится A.

В качестве альтернативы вы можете выполнить поиск по самому алфавиту. В этом случае вы должны использовать функцию index().

print(pl_vals_list.index('A')). Это приведет к присвоению номера алфавиту. Результатом будет 0

Это даст вам возможность искать по алфавиту или значению.

Вы также можете проверить, находится ли алфавит внутри списка, используя:

if 'A' in pl_vals_list:
    #then do something for value A
elif 'B' in pl_vals_list:
    #then do something for value B
else:
    #then do something

Вы также можете перебирать список, используя для l oop, и перечислять. Однако я не знаю, будет ли это полезно для вас.

for i, v in enumerate(pl_vals_list):
    #do something with each value in the list
    #here i will store the index, and v will have the value - A, B, C, etc

Вы можете получить значение каждого из них и определить, что вы хотите сделать.

**

Решение с использованием Dictionary Datatype

**

Точно так же вы можете сделать то же самое с помощью словаря.

pl_vals_dict = {'A':0, 'Z':1, 'Y':2, 'X':3, 'U':4, 'T':5, 'S':6, 'R':7, 'P':8, 'M':9, 'L':10, 'K':11, 'J':12, 'H':13, 'G':14, 'E':15, 'D':16, 'C':17, 'B':18}

Для поиска алфавитов в словаре вы можете использовать

if 'A' in pl_vals_dict.keys():
    #then do something for value A
elif 'A' in pl_vals_dict.keys():
    #then do something for value B
else:
    #do something else

Альтернативный способ проверки:

x = True if 'F' in pl_vals_dict.keys() else False

В этом случае x будет иметь значение False

Вы также можете использовать функцию get () для получения значения.

x = pl_vals_dict.get('A')  # OR

print (pl_vals_dict.get('A')

Самый простой способ найти значение словаря:

print (pl_vals_dict['A'])

, что приведет к 0

Однако вы должны быть осторожны, если вы попытаетесь распечатать значение 'F', это вызовет ошибку, поскольку 'F' не является частью пары ключевых значений в словаре.

print (pl_vals_dict['F'])

это даст вам следующую ошибку:

Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    pl_vals_dict['F']
KeyError: 'F'

Подобно списку, вы также можете перебирать словарь для ключи и ценности. Не уверен, что вам нужно будет это использовать, но вот вам пример.

for k, v in pl_vals_dict.items():
    #do something with each pair of key and value
    #here k will have the keys A Z Y X ....
    #and v will have the values 1, 2, 3, 4, ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...