32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
|
import easyocr
|
|||
|
import cv2
|
|||
|
|
|||
|
def ocr_image(img_path):
|
|||
|
"""
|
|||
|
Выполняет OCR для изображения с номером.
|
|||
|
|
|||
|
:param img_path: Путь к изображению.
|
|||
|
:return: Распознанный текст.
|
|||
|
"""
|
|||
|
reader = easyocr.Reader(['en'], gpu=True) # Инициализация easyOCR
|
|||
|
img = cv2.imread(img_path) # Загрузка изображения
|
|||
|
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Конвертация в оттенки серого
|
|||
|
|
|||
|
# Запуск OCR
|
|||
|
results = reader.readtext(gray)
|
|||
|
print(results)
|
|||
|
text = ""
|
|||
|
for res in results:
|
|||
|
if len(results) == 1:
|
|||
|
text = res[1]
|
|||
|
if len(results) > 1 and len(res[1]) > 6 and res[2] > 0.2: # Фильтрация текста
|
|||
|
text = res[1]
|
|||
|
|
|||
|
return text
|
|||
|
|
|||
|
# Использование
|
|||
|
if __name__ == "__main__":
|
|||
|
img_path = "result.png" # Путь к изображению с номером
|
|||
|
recognized_text = ocr_image(img_path)
|
|||
|
print(f"Распознанный текст: {recognized_text}")
|