如何在WAMP服务器上安装Tesseract OCR,由PHP运行?

时间:2013-06-05 05:57:56

标签: php ocr wampserver tesseract

我正在尝试将OCR软件Tesseract安装到我的WAMP服务器上,以便我可以自动执行某些图像的OCR过程。当我搜索如何在WAMP服务器上安装软件时,我得到的是如何安装WAMP服务器以便路由没有答案。我已经在我的计算机上成功安装了Tesseract,并且知道我使用的文件正常工作,我的问题是我无法从PHP脚本运行Tesseract。我使用了提供的Windows安装程序并将其安装到WAMP中的www目录中。然后我尝试使用PHP exec()执行一些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脚本位于同一目录中。我承认自己是新手,所以如果有一些我忽略的简单,请耐心等待。提前谢谢。

1 个答案:

答案 0 :(得分: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