3

您好我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码:

from PIL import Image
from pytesseract import image_to_string
print image_to_string(Image.open(r'D:\new_folder\img.png'))

但是出现了以下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pytesseract\pytesseract.py", line 161, in image_to_string
config=config)
File "C:\Python27\lib\site-packages\pytesseract\pytesseract.py", line 94, in run_tesseract
stderr=subprocess.PIPE)
File "C:\Python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

我没有找到具体的解决方案。谁能帮我做什么。还有什么要下载或从哪里可以下载等等。

提前致谢 :)

4

4 回答 4

4

我遇到了同样的麻烦,看了这篇文章后很快找到了解决方案:

OSError: [Errno 2] No such file or directory using pytesser

只需要适配Windows,替换如下代码:

tesseract_cmd = 'tesseract'

和:

tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'

(需要 double在字符串中\\首先转义)\

于 2017-01-18T09:18:33.237 回答
2

您遇到异常是因为子进程无法找到二进制文件(tesser 可执行文件)。

安装是一个 3 步过程:

1.下载/安装系统级库/二进制文件

对于各种操作系统,这里是帮助。对于 MacOS,您可以使用 brew 直接安装它。

安装 Google Tesseract OCR(有关如何在 Linux、Mac OSX 和 Windows 上安装引擎的附加信息)。您必须能够以 tesseract 的形式调用 tesseract 命令。如果不是这种情况,例如因为 tesseract 不在您的 PATH 中,您将不得不更改 tesseract.py 顶部的“tesseract_cmd”变量。在 Debian/Ubuntu 下,您可以使用包 tesseract-ocr。对于 Mac OS 用户。请安装自制软件包 tesseract。

对于Windows

旧版本 3.02 的安装程序可从我们的下载页面获取适用于 Windows 的安装程序。这包括英语训练数据。如果您想使用其他语言,请下载相应的训练数据,使用 7-zip 解压缩,然后将 .traineddata 文件复制到“tessdata”目录中,可能是C:\Program Files\Tesseract-OCR\tessdata.

要从任何位置访问 tesseract-OCR,您可能必须将 tesseract-OCR 二进制文件所在的目录添加到 Path 变量中,可能是C:\Program Files\Tesseract-OCR.

可以从这里下载.exe


2.安装Python包

pip install pytesseract

3.最后,您需要在 PATH 中有 tesseract 二进制文件

或者,您可以在运行时设置它:

import pytesseract

pytesseract.pytesseract.tesseract_cmd = '<path-to-tesseract-bin>'

对于Windows

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
  • 上述行将使其暂时工作,对于永久解决方案tesseract.exe,将PATH- 例如PATH=%PATH%;"C:\Program Files (x86)\Tesseract-OCR“。

  • 除此之外,请确保将TESSDATA_PREFIXWindows 环境变量设置为包含 tessdata 目录的目录。例如:

    TESSDATA_PREFIX=C:\Program Files (x86)\Tesseract-OCR

即 tessdata 位置是:C:\Program Files (x86)\Tesseract-OCR\tessdata


你的例子:

from PIL import Image
import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
print pytesseract.image_to_string(Image.open(r'D:\new_folder\img.png'))
于 2017-09-26T07:38:49.100 回答
0

关于 pytesseract,我也遇到了同样的问题。我建议你在linux环境下工作,以解决此类错误。在 linux 中执行以下命令:

pip install pytesseract
sudo apt-get update
sudo apt-get install pytesseract-ocr

希望这会做的工作..

于 2018-06-28T13:19:45.287 回答
0

您需要在您的机器上安装 Tesseract OCR 引擎(“Tesseract.exe”)。如果您的机器中未配置路径,请在 pytesseract.py(tesseract.py) 中提供完整路径。

自述文件

安装 Google Tesseract OCR(有关如何在 Linux、Mac OSX 和 Windows 上安装引擎的附加信息)。您必须能够以 tesseract 的形式调用 tesseract 命令。如果不是这种情况,例如因为 tesseract 不在您的 PATH 中,您将不得不更改 tesseract.py 顶部的“tesseract_cmd”变量。在 Debian/Ubuntu 下,您可以使用包 tesseract-ocr。对于 Mac OS 用户。请安装自制软件包 tesseract。

另一个线程

于 2017-09-22T11:23:05.783 回答