php - 如何将 Tesseract OCR 安装到由 PHP 运行的 WAMP 服务器上?

标签 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 脚本位于同一目录中。我承认对此很陌生,所以如果我忽略了一些简单的事情,请多多包涵。提前致谢。

最佳答案

“已成功安装 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

关于php - 如何将 Tesseract OCR 安装到由 PHP 运行的 WAMP 服务器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932551/

相关文章:

Windows 8 上的 WAMPSERVER 无法启动

PHP 拒绝从 var_dump、print 等输出数据

php - Libreoffice headless Process 结果不返回,而是等待超时

c++ - 提高 Tesseract 检测质量

mysql - 在 Windows 7 中通过命令行导入 SQL 文件

windows-phone-8 - Windows Phone 8 WP8 上的 OCR

python - 阅读文本时出现 Pytesseract 随机错误

php - Laravel 如何获取当前用户登录的时间?

php - 如何用 PHP 成对连接两个数组的字符串值?

php - 判断一个php进程的Linux用户