Возникла проблема с библиотекой подпроцесса в python при извлечении текста из изображения с помощью OCR - PullRequest
0 голосов
/ 25 февраля 2020

Я использовал python OCR-код для извлечения текста из изображения, но я получаю некоторую ошибку. Я думаю, что ошибка с библиотекой подпроцесса, однако она встроена в библиотеку. Так что я не мог точно понять ошибку. Может кто-нибудь, пожалуйста, помогите мне в решении этой ошибки. Мой код и ошибка, как показано ниже.

Код OCR

       import os
import tempfile
import subprocess

def ocr(path):
    temp = tempfile.NamedTemporaryFile(delete=False)

    process = subprocess.Popen(['tesseract', path, temp.name], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    process.communicate()

    with open(temp.name + '.txt', 'r') as handle:
        contents = handle.read()

    os.remove(temp.name + '.txt')
    os.remove(temp.name)

    return contents

str = ocr("C:\\Users\\hp\\Desktop\\MS Thesis\\opencv-text-detection\\opencv-text-detection\\images\\sign.jpg")
print(str)

, выполнив код выше, я получил следующую ошибку

[7]: runfile ('C : / Users / hp / Рабочий стол / MS Thesis / python текст обнаружения.py ', wdir =' C: / Users / hp / Desktop / MS Thesis ') Traceback (последний вызов был последним):

Файл "", строка 1, в runfile ('C: / Users / hp / Desktop / MS Thesis / python text обнаружения.py', wdir = 'C: / Users / hp / Desktop / MS Thesis ')

Файл "C: \ Users \ hp \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 704, в исполняемом файле runfile (имя файла, пространство имен)

Файл "C: \ Users \ hp \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 108, в execfile exe c (компилировать (f.read () , имя файла, 'exe c'), пространство имен)

Файл "C: / Users / hp / Рабочий стол / MS Thesis / python текст обнаружения.py", строка 26, в строке = ocr ("C: \ Users \ hp \ Desktop \ MS Thesis \ opencv-text-обнаружения \ opencv-text-обнаружения \ images \ sign.jpg")

F ile "C: / Users / hp / Desktop / MS Thesis / python text обнаружения.py", строка 15, в ocr process = subprocess.Popen (['tesseract', path, temp.name], stdout = subprocess.PIPE, stderr = subprocess.STDOUT)

Файл "C: \ Users \ hp \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 171, в init super (SubprocessPopen, self). init (* args, ** kwargs)

Файл "C: \ Users \ hp \ Anaconda3 \ lib \ subprocess. py ", строка 769, в init restore_signals, start_new_session)

Файл" C: \ Users \ hp \ Anaconda3 \ lib \ subprocess.py ", строка 1172, в _execute_child startupinfo )

FileNotFoundError: [WinError 2] Системе не удается найти указанный файл

Я использовал Python 3.7.1 с anaconda в окне 7

1 Ответ

0 голосов
/ 25 февраля 2020

Похоже, что произошла ошибка, потому что он не может найти файл, если файл находится в том же каталоге, я рекомендую вам использовать:

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
os.path.join(BASE_DIR, 'file_dir')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...