Ошибка: объект «numpy.ndarray» не имеет атрибута «чтение»

#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 , если это не путь к файлу. Просто переменная с другим именем.