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上?有人以前用过吗?
答案 0 :(得分:1)
检查您的环境变量是否在您的终端上的路径问题 printenv 命令中添加了Tesseract的二进制文件,您应该会看到类似
的内容PATH = “的/ usr / local / sbin中:在/ usr / local / bin中:/ usr / sbin目录”
如果它不存在,请添加~~ .profile
中的内容export PATH = $ PATH / usr / bin:/ path / to / your / tesseract
或者您可以查看有关如何添加一个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)