3

我正在尝试将 OCR 软件 Tesseract 安装到我的 WAMP 服务器上,以便我可以自动执行某些图像的 OCR 过程。当我搜索如何在 WAMP 服务器上安装软件时,我得到的只是如何安装 WAMP 服务器,这样路由就没有答案了。我已经在我的计算机上成功安装了 Tesseract,并且知道我正在使用的文件可以正常工作,我的问题是我无法从 PHP 脚本运行 Tesseract。我使用了提供的 Windows 安装程序并将其安装到 WAMP 中的 www 目录中。然后我尝试使用 PHPexec()执行一些 OCR,但没有得到任何输出。这是我的简单脚本:

<?php
    $path = getenv('PATH');
    putenv("PATH=$path:/usr/local/bin");
    $src = 'a.jpg';
    $srcImg = imagecreatefromjpeg($src);

    $img = imagecreatetruecolor($newClanWidth, $newHeight);
    imagecopyresampled($img, $srcImg, 0, 0, $positions["aPlayer"], $positions[0], $newClanWidth, $newHeight, $clanWidth, $height);
    imagejpeg($img, 'temp.jpg', 100);
    echo '<pre>';
    exec('tesseract temp.jpg out');
    //echo file_get_contents('out.txt');
    echo '</pre>';
    imagedestroy($img);
?>

图像正在正确保存。我可以更改中的位置,imagecopyresampled()图像也会相应更改。我怀疑我的问题出在安装上,因为无论我在哪里看到每个人都说要exec()像我从命令行一样使用。我也尝试过指定命令,如Tesseract-OCR/tesseract.exe temp.jpg out. Tesseract-OCR 文件夹与我的 PHP 脚本位于同一目录中。我承认对此很陌生,所以如果我忽略了一些简单的事情,请多多包涵。提前致谢。

4

1 回答 1

2

“成功安装 Tesseract”是什么意思?你是怎么验证的?您可以在命令行中运行tesseract.exe -v并正确运行(或者这些天您在 Windows 上调用 CMD)吗?

如果这可行,那么请确保通过 php 执行此操作获得相同的结果:

确保您打开了错误:error_reporting(-1)并检查您是否收到任何错误。如果你真的可以通过 php 执行 tesseract,不如试试:

$return = shell_exec('tesseract.exe -v'); // in your example you miss .exe it would be without extension on linux
var_dump($return);

(shell_exec 返回所有输出,与只返回最后一行的 exec 进行比较)

如果可行,请尝试在提取时设置绝对路径:

imagejpeg($img, 'c:/temp.jpg', 100);
$return = exec('tesseract.exe temp.jpg c:/out');
var_dump($report); // in case it gives you some errors
$content = file_get_contents('c:/out.txt');
if ($content === false) die('something is still wrong');
// otherwise process $content

如果没有任何帮助,那就分享您的结果/错误。

最后提示:尝试安装linux

于 2013-10-08T06:08:49.070 回答