我正在尝试将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脚本位于同一目录中。我承认自己是新手,所以如果有一些我忽略的简单,请耐心等待。提前谢谢。
答案 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