Итерация по папке с помощью Pillow Image.open - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь перебрать папку с файлами .png и распознать их. Итерация работает, но как только я пытаюсь открыть Изображения с помощью PIL, выдает ошибки.

import pytesseract
from PIL import Image
import os

for filename in os.listdir('C:/Users/Artur/Desktop/Sequenz_1'):
    if filename.endswith('.png'):
        print(filename)

Это работает просто отлично. Он печатает каждое .png имя файла в папке. Но когда я пытаюсь OCR:

import pytesseract
from PIL import Image
import os

for filename in os.listdir('C:/Users/Artur/Desktop/Sequenz_1'):
    if filename.endswith('.png'):
        print(pytesseract.image_to_string(Image.open(filename)))

Выход:

Traceback (most recent call last):
  File "C:\Users\Artur\Desktop\Pytesseract_test.py", line 8, in <module>
    print(pytesseract.image_to_string(Image.open(filename)))
  File "C:\Users\Artur\AppData\Local\Programs\Python\Python36\lib\site-packages\PIL\Image.py", line 2580, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'frame_0000.png'

Edit:

Благодаря Benehiko теперь все работает нормально.

Код:

import pytesseract
from PIL import Image
import glob


images = glob.glob('C:/Users/Artur/Desktop/Sequenz_1/*.png')

for image in images:
    with open(image, 'rb') as file:
        img = Image.open(file)
        print(pytesseract.image_to_string(img))

1 Ответ

0 голосов
/ 04 июля 2018

У меня есть скрипт на python, открывающий изображения jpg из папки с помощью glob. Открытие png будет такой же концепцией, просто изменив " .jpg" на " .png"

Итерация по папке

Код, который я использую в моем случае, выглядит следующим образом:

import glob
from PIL import Image

images = glob.glob("Images/*.jpg")
for image in images:
    with open(image, 'rb') as file:
        img = Image.open(file)
        img.show()
...