仅选择图像的特定部分

2022-08-30 22:28:31

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

我有以下任务:

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

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

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

下面的例子说明了我想做什么(这只是一个例子,我不是想用钱做一些法律操纵):

这是示例图像:

enter image description here

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

  1. 这是所有公共和私人债务的法定货币
  2. L11180916G
  3. ONEDOLAR

欢迎所有文章和建议。


答案 1

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

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


答案 2

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

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

关于识别文本区域的问题 - 这取决于文档的实际相似程度。如果您使用1美元的账单来调整应用程序,它可能能够从许多账单中读取序列号 - 但它不知道如何阅读不同的注释。有很多图像识别工具可用,同样,cli工具将易于集成。


推荐