用于从我们上传的图像中读取任何文本的 PHP api

Posted

技术标签:

【中文标题】用于从我们上传的图像中读取任何文本的 PHP api【英文标题】:Php api for reading any text from image wahtever we uplaod 【发布时间】:2017-10-02 15:36:00 【问题描述】:

无论我们上传什么,我都需要帮助才能从图像中读取文本。是否有任何库可以做到这一点。我正在使用 Tesseract php OCR。

但不知道如何使用它。我在这里附上我的文件。

Tesseract 文件来自这里:https://github.com/thiagoalessio/tesseract-ocr-for-php/tree/master/src 和我的 php 我已经写了附加图片。enter image description here

【问题讨论】:

你安装了tesseract ocr吗? 请阅读How to ask a good question 和The perfect question 以及如何创建Minimal, Complete and Verifiable example (MVCE) 以改善您的问题并有机会获得答案。 您是否在您的虚拟主机上安装了 tesseract?你有任何 php 错误吗? 【参考方案1】:

这是我用来在 ubuntu 16.04 上对 pdf 进行 ocr 的小脚本

$inputPDF = 'path/to /your/file';
$fileToOCR = "ocr.tiff";
exec("convert -density 300 $inputPDF -depth 8 -strip -background white -alpha off $fileToOCR");
$outputOCR = "ocr";
exec("tesseract $fileToOCR -l deu+eng $outputOCR hocr");

请注意,您需要安装 tesseract-ocr 和 imagemagick sudo apt-get install tesseract-ocr imagemagick

你还需要你想使用的语言包sudo apt-get install tesseract-ocr-[lang]

exec("convert ..."); 准备文件以获得更好的结果

exec("tesseract ... "); 执行实际的 ocr,其中 deu+eng 是文本中的语言,hocr 是输出格式(xml 以及找到文本的附加信息)

希望对你有帮助

【讨论】:

【参考方案2】:

你好,你可以使用这个库

https://www.phpclasses.org/package/3312-PHP-Hide-encrypted-data-in-images-using-steganography.html

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考/下载。如果链接页面发生更改,仅链接的答案可能会失效。 这个答案与原始问题无关,因为 OP 希望从图像中提取可见文本而不是隐藏在图像中的文本。【参考方案3】:

您可以使用这个 API(它是免费的):

<?php
$url = 'http://server.com/image.png';
$data = json_decode(file_get_contents('http://api.rest7.com/v1/ocr.php?url=' . $url . '&format=txt'));

if (@$data->success !== 1)

    die('Failed');

$txt = file_get_contents($data->file);
file_put_contents('text.txt', $txt);

您只需将$url 替换为图像文件的URL,输出将保存为text.txt

【讨论】:

以上是关于用于从我们上传的图像中读取任何文本的 PHP api的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中上传图像时在图像上添加文本

从图片中解码文本或任何简单对象

从ios照片上传中读取exif日期

使用 PHP 读取图像中的文本

如何在java中从图像中读取文本[重复]

如何从 ASP.net C# 中的字符串中提取 C#/PHP/Code/SQL