#python #python-imaging-library #google-colaboratory #cv2 #python-tesseract
Вопрос:
Я новичок в OCR и Тессеракте. В соответствии с моим заданием, я должен решить задачу, в которой я должен извлечь текст из рисунка. Но я получаю эту ошибку, которую я не знаю, как решить. Любая помощь будет оценена по достоинству!
The error code:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/PIL/Image.py in open(fp, mode)
2846 try:
-> 2847 fp.seek(0)
2848 except (AttributeError, io.UnsupportedOperation):
AttributeError: 'numpy.ndarray' object has no attribute 'seek'
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
1 frames
/usr/local/lib/python3.7/dist-packages/PIL/Image.py in open(fp, mode)
2847 fp.seek(0)
2848 except (AttributeError, io.UnsupportedOperation):
-> 2849 fp = io.BytesIO(fp.read())
2850 exclusive_fp = True
2851
AttributeError: 'numpy.ndarray' object has no attribute 'read'
Исходный код:
!pip install pytesseract
!sudo apt install tesseract-ocr
import pytesseract
from PIL import Image
import cv2
from google.colab.patches import cv2_imshow
import numpy as np
image_path = Image.open("/content/drive/MyDrive/Colab Notebooks/cropped1.jpg")
image_path = cv2.cvtColor(np.array(image_path), cv2.COLOR_BGR2RGB)
cv2_imshow(image_path)
extractedInformation = pytesseract.image_to_string(Image.open(image_path))
Комментарии:
1.
image_path
является массивом, возвращаемым первымcv2.cvtColor
. Затем вы открываете изображение вместо указателя на файл. В принципе, ты делаешь то, что делаешьImage.open(cv2.cvtColor(np.array(Image.open("/content/drive/MyDrive/Colab Notebooks/cropped1.jpg"))))
. Видите в чем проблема?2. Просто не назначайте
image_path
, если это не путь к файлу. Просто переменная с другим именем.