0

我试图捕获当前屏幕的一部分以检测屏幕上的某个数字,但是当代码运行时出现此错误:

Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/bot/detect_num.py", line 12, in <module>
    print(pytesseract.image_to_string(Image.open('test.jpg')))
  File "C:\Python35\lib\site-packages\pytesseract\pytesseract.py", line 161, in image_to_string
    config=config)
  File "C:\Python35\lib\site-packages\pytesseract\pytesseract.py", line 94, in run_tesseract
    stderr=subprocess.PIPE)
  File "C:\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

源代码:

import pyscreenshot as ImageGrab
from PIL import Image
import subprocess
from pytesseract import *

if __name__=="__main__":
    im = ImageGrab.grab(bbox=(1349, 34, 1357, 45))
    im = im.convert('1')
    im.save('test.jpg', 'JPEG')
    im.show()
    print(pytesseract.image_to_string(Image.open('test.jpg')))

请有人告诉我为什么,以及如何解决?

4

3 回答 3

2

当你使用 pytesseract 时,首先你必须确保你已经在你的系统中安装了 Tesseract-OCR。然后你必须在你的代码中插入 tesseract 的路径,如下

from PIL import Image
import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract 
OCR/tesseract'

您可以下载 Tesseract-OCR 表格https://github.com/UB-Mannheim/tesseract/wiki

于 2018-01-09T06:08:48.357 回答
0

这里的问题是您没有安装必要的依赖项。当您阅读pyteseeract's 文档时,您会看到以下文本:

  • 从http://code.google.com/p/tesseract-ocr/安装 google tesseract-ocr 。您必须能够以“tesseract”的形式调用 tesseract 命令。如果不是这种情况,例如因为 tesseract 不在您的 PATH 中,您将不得不更改“tesseract.py”顶部的“tesseract_cmd”变量。

我想您还没有执行该步骤,因此没有tesseract命令可以实际执行所需的 OCR 工作。

于 2016-09-14T12:01:28.880 回答
0

https://digi.bib.uni-mannheim.de/tesseract/

从此链接中,您可以获得一个.exe文件,这将使您更轻松地安装 tesseract。然后您可以将 tesseract 的路径添加到环境路径中。最后你可以使用 pytesseract

于 2019-03-08T11:21:55.203 回答