#python #opencv #anpr
Вопрос:
Это из скрипта распознавания номерных знаков opencv easyocr opencv обрезает изображение до номерного знака и выдает чистый отличный вывод в easyocr. но что это за куча чисел, которые он читает
result = reader.readtext(opencv(mypath))
Результат: [([[0, 0], [163, 0], [163, 31], [0, 31]], ‘ SPHJ > 3764’, 0,5565279612963627)]
Я знаю, что могу получить чистый вывод с помощью этого, но дело в том, что он отличается от картинки к картинке. есть ли какой-либо способ получить только номерной знак
result = result[0][-2]
Результат: SPHJ> 3764
Ответ №1:
Как указано в документах:
Вывод будет в формате списка, каждый элемент представляет собой ограничивающую рамку, обнаруженный текст и уровень уверенности соответственно.
Это координаты поля, в котором находится текст. И последний элемент — уровень достоверности.
[[0, 0], [163, 0], [163, 31], [0, 31]]
-> координаты 4 углов'SPHJ > 3764'
-> текст0.5565279612963627
-> уровень достоверности
Просто используйте result[0][1]
, чтобы получить текст. Обратите внимание, что в результате может быть обнаружено несколько текстовых полей, поэтому вам нужно получить доступ по индексу или выполнить итерацию по нему.
for item in result:
print(item[1])
Комментарии:
1. итак, мне нужно запустить цикл, чтобы result [0] [1]-> result [1] [1] вот так правильно, но откуда мне знать, что «если» на выходе есть 2 или более местоположения
2. Я отредактировал свой ответ, чтобы включить образец цикла.
3. спасибо, это очень полезно