Тессеракт не показывает никакого вывода при вызове через подпроцесс python - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь прочитать капчу из тессеракта внутри python с помощью подпроцесса, но он выдает гиббери sh выводится как

p = subprocess.Popen(['tesseract', 'CAPT1.png','stdout','-l','eng','--oem 3','--psm 7','>>','nm.txt'], stdout=subprocess.PIPE)
p.communicate()
Out : (b' \n\x0c', None)

Пробовать деконг все еще не повезло: -

print (stdout.decode('utf-8'))
Out : ' \n\x0c'

Даже pytesseract не дает никакого вывода:

import pytesseract
ocr = pytesseract.image_to_string(Image.open('CAPT1.png'), lang='eng', \
        config='eng --psm 7 --oem 3')
print (ocr)
Out :

В то время как тот же самый tesseract при вызове из командной строки в linux дает правильный вывод

tesseract CAPT1.png stdout -l eng --oem 3 --psm 7
Out: X8ZUZ4

1 Ответ

1 голос
/ 16 марта 2020

Решенный хаком, просто скопировал команду в сценарий оболочки и выполнил в блокноте как

! sh tes. sh

...