仅选择图像的特定部分

Posted

技术标签:

【中文标题】仅选择图像的特定部分【英文标题】:Select only specific parts of the image 【发布时间】:2012-12-10 22:13:38 【问题描述】:

我是“光学字符识别”的新手,需要更多信息和建议,因为我无法找到我需要做的事情。

我有以下任务:

    图像作为输入给出 - 它们将具有相同的结构 - 一些图标、公司符号和文字。 只需要选择文本,然后使用一些 OCR 库。

是否可以使用一些 OCR php 库创建一个函数并仅选择一些带有文本的区域?

如果 PHP 没有好的 OCR 库,你能推荐一些其他语言的吗?

下面的例子展示了我想要做什么(这只是一个例子,我并不是想用金钱做一些违法的操纵):

这是示例图片:

这是输出(被红色矩形包围的文本):

    这是所有公共和私人债务的法定货币 L11180916G 单美元

欢迎所有文章和建议。

【问题讨论】:

当然不是题外话,显然是在寻求开发帮助以使用 php 从图像中获取文本。 @MubasharAhmad 不,我找不到提取它的方法。很久以前,一个 *** 用户分享了一个指向他的工具的链接,它可以做到这一点,但它不是免费的,我没有尝试。后来,他删除了他的答案。 @gotqn 显然该解决方案被称为“ABBYY Cloud OCR SDK”,虽然我不知道它是 1. 甚至可以工作还是 2. 物有所值。 我会推荐 python 科学生态系统。库和教程非常好,ipython notebook(现在是 jupyter)在调试图像工作流时有很大帮助。一个好的开始是 scipy 教程之一:youtube.com/watch?v=olb7R1cuzyU 【参考方案1】:

我会推荐:https://github.com/tesseract-ocr/tesseract

PHP 可能不是这项工作的最佳工具,但如果您愿意,您可以随时从 PHP 调用 tesseract,然后解析从中得到的结果。

【讨论】:

【参考方案2】:

我不知道有任何 PHP 扩展实现了 OCR,但作为支持图像处理的通用脚本语言,PHP 是集成其他工具的绝佳选择。

Tesseract and gocr是OCR的开源命令行工具,都非常有效。但就像任何 OCR 软件包一样,可能会遇到与您提供的图像相似的图像。如果您的 PHP 代码可以将文本与文本区域隔离开来,那么您将获得更好的结果。您仍然需要进行一些数据清理 - 使用 php 拼写检查器。你会发现同样的误读模式不断出现——比如把“rn”读成“m”。您的 PHP 代码应该能够识别和处理大多数情况。

关于识别文本区域的问题 - 这取决于文档的真实程度。如果您使用 1 美元的钞票调整您的应用程序,它可能能够从许多钞票中读取序列号 - 但它不知道如何读取不同的钞票。有很多可用的图像识别工具,而且 cli 工具也很容易集成。

【讨论】:

【参考方案3】:

您可以使用 Irfanview 32-bit,然后安装 KADMOS 插件: http://irfanview.info/plugins/kadmos/

Kadmos 的 DLL(至少对于插件而言)目前是 32 位的,这就是为什么它仅适用于 32 位版本的 Irfanview。

安装后,打开显示一些文本的图像,然后选择“选项 > 启动 OCR ...(插件)”菜单项。然后,您可以通过在其周围拖放一个矩形来选择一些文本,并且已识别的文本将在一个窗口中弹出,您可以从中复制它。 该插件仅供个人(非商业)使用,但让您看看 KADMOS 是否适合您的需求。

如果您有很多图片要批量处理,您可以获取 Kadmos DLL 的许可证。 有关技术文档,请参阅:http://www.best-ocr.com/handbuch/book/html/files.html 对于许可问题,请将上述 URL 中的“files.html”替换为“dll_e.htm”。

【讨论】:

【参考方案4】:

您可以使用 Abbyy Cloud Ocr Sdkhttps://cloud.ocrsdk.com/

【讨论】:

【参考方案5】:

老问题,但它可能对其他人有帮助。试试 ClearImage SDK。

http://www.inliteresearch.com/actions/download-proc.php?type=CI&id=

try 
    $Ci = new COM("ClearImage.ClearImage");
 catch (Exception $e) 
    echo $e->getMessage();

【讨论】:

以上是关于仅选择图像的特定部分的主要内容,如果未能解决你的问题,请参考以下文章

仅显示图像的某些部分并使用 GD 调整其大小

在matlab中的图像中裁剪具有特定分辨率的图像

资产目录中设备特定图像集中的设备

从图像视图中捏和图像并获得它的特定部分?

仅更新 cloudinary 节点 js 中的特定图像

过滤数据集以仅获取特定类的图像