如何在PHP中使用Tesseract OCR?

4

我正在Windows上使用XAMPP。

我想在PHP中使用Tesseract OCR。

我的Tesseract已经安装好了。

C:/Program Files/Tesseract OCR/

XAMPP已安装完成。

C:/xampp/

我正在使用此代码在我的PHP中执行Tesseract
exec("tesseract test.png test.txt");

但是它没有起作用...

在我的情况下,shell_exec('"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" "E:\xampp\htdocs\images\'.$file_name.'" out'); 但是没有起作用。 - Krunal Pandya
5个回答

3

你的exec函数应该是这样的:

exec("tesseract.exe test.png test.txt");

你漏掉了 tesseract 的 .exe 扩展名。我之前也犯过同样的错误!

另外,你的 tesseract 应该在 xampp 服务器上安装。


嘿,我的代码是shell_exec('"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" "E:\xampp\htdocs\images\'.$file_name.'" out');但它不起作用。 - Krunal Pandya
@KrunalPandya,我已经有5年没有使用Tesseract了,所以我对它的工作原理不是很熟悉。你尝试过直接通过shell运行而不是通过PHP吗?这将消除任何与PHP相关的问题,并可以提供Tesseract生成的任何输出消息。祝你好运! - Bpainter
它可以工作,但我有一些问题。我想将数据转换为每行的数组格式,在我的图像中有4列。 - Krunal Pandya

0
#Debes tener eng.traineddata y el tesseract.exe en la carpeta prueba#
//este codigo funciona en el servidor local
<?php 
$imagen = file_get_contents('http://e-consultaruc.sunat.gob.pe/cl-ti-
itmrconsruc/captcha?accion=image');
file_put_contents('C:\AppServ\www\Sitio AAA\Prueba\foto.jpg', $imagen);
exec("tesseract.exe foto.jpg mitexto2.txt");
?>
<form action="obtener_imagen_captcha.php" method="post">
<input type="submit" value="Aceptar">
</form>

0

这是一个不错的教程。
https://chillyfacts.com/convert-image-to-text-optical-character-recognition-ocr-using-php/

这段代码对我很有效:

    <?php
    shell_exec('"C:\\Program Files\\Tesseract-OCR\\tesseract" "example_image.PNG" out');
    ?>

(第一部分)这段代码的解释如下:首先,它定义了Tesseract安装的目录。因此,根据您计算机的文件情况,需要更改目录。
(Part 1)
"C:\\Program Files\\Tesseract-OCR\\tesseract"

(第二部分)代码的第二部分定义了图像文件的目录。因此,在我的情况下,具有shell_exec()函数的php文件与我拥有的图像文件example_image.PNG在同一个目录中。如果您的图像有不同的目录,可以像这样定义:C:\\xampp\\htdocs\\images\\example_image.PNG
(Part 2)
"example_image.PNG"

(第三部分) 第三部分定义了输出文本文件的文件名。
(Part 3)
out

0

回复太晚了。但希望对其他人有所帮助。代码如下:

shell_exec('"C:\\Program Files (x86)\\Tesseract-OCR\\tesseract" "F:\\WebApp5\\htdocs\\imgtotext\\images\\'.$file_name.'" out');

这里是 shell_exec('"你的 Tesseract 文件位置" "你的图像位置" 文件名')。谢谢。


2
请在您的答案中提供更多细节。目前的写法很难理解您的解决方案。 - Community

-1

请在检查之前

以管理员身份运行cmd

tesseract

如果信息已显示,请将您的test.png复制到桌面并运行此代码。
cd %userprofile%\desktop
tesseract test.png test

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接