Как получить чистый вывод из easyocr

#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. спасибо, это очень полезно