Tesseract PHP包装器无法打开文件

时间:2014-06-24 22:07:38

标签: php tesseract

Tesseract https://github.com/thiagoalessio/tesseract-ocr-for-php)有一个开源PHP包装类,但我在使用它时遇到了问题:

使用composer成功安装它,但是当我调用

$tesseract = new TesseractOCR('img/c11a67cdd171790771fcf33ec78461d9.png');
$tesseract->setTempDir('/var/www/dir_name/imgRead/');
$tesseract->setWhitelist(range(0,9));

当我运行echo $tesseract->recognize();时,我得到了

Message: file_get_contents(/var/www/dir_name/imgRead/573534798.txt): 
failed to open stream: No such file or directory

作者说:

重要提示:确保tesseract二进制文件位于您的$ PATH

但我不确定这究竟是什么意思,我如何检查二进制文件是否在我的$ PATH上?有人以前用过吗?

5 个答案:

答案 0 :(得分:1)

  1. 检查您的环境变量是否在您的终端上的路径问题 printenv 命令中添加了Tesseract的二进制文件,您应该会看到类似

    的内容

    PATH = “的/ usr / local / sbin中:在/ usr / local / bin中:/ usr / sbin目录”

  2. 如果它不存在,请添加~~ .profile

    中的内容

    export PATH = $ PATH / usr / bin:/ path / to / your / tesseract

  3. 或者您可以查看有关如何添加一个here

    的不同方法

答案 1 :(得分:0)

尝试使用

通过PHP设置路径
$path = getenv('PATH');
putenv("PATH=$path:/usr/local/bin");

其中 / usr / local / bin 安装 Tesseract的位置。

答案 2 :(得分:0)

嗨,我有自己的问题。是否有人有解决方案?

我的路径是:

PATH=/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin

我的tesseract之路是:

tesseract: /usr/local/bin/tesseract

我使用的是Cent OS 6和新的PHP

答案 3 :(得分:0)

问题可能与终端检查tesseract上的Tesseract安装相关

$ tesseract -v

确保输出接近此输出。应该有这些库,如果它缺少库,那么Tesseract不会在任何地方写入txt文件,这就是为什么它找不到它。

这是我在centos 6上的输出

tesseract 3.02.02 leptonica-1.73 libjpeg 6b(libjpeg-turbo 1.2.1):libpng 1.2.49:libtiff 3.9.4:zlib 1.2.3

答案 4 :(得分:0)

检查系统中是否安装了TesseractOCR,如果没有:

sudo apt-get install tesseract-ocr

Tesseract-ocr-php只是在安装了TesseractOCR的系统上执行exec(cammande)