baraveli/bml-ocr

v0.3 2020-08-07 09:40 UTC

This package is auto-updated.

Last update: 2024-09-07 18:39:43 UTC


README

StyleCI Build Status

BML交易收据OCR,基于Tesseract OCR。目前它将结果作为数组返回。在未来的版本中,我们将切换到带有正则表达式匹配的收据对象。

不建议在生产环境中使用。

安装

通过 Composer

composer require baraveli/bml-ocr

‼️ 此库依赖于 Tesseract OCR,版本 3.02 或更高。


Linux用户注意事项

安装tesseract非常简单,运行以下命令:

sudo apt install tesseract-ocr

如果默认安装不包括英语语言包,您必须单独拉取它,运行以下命令

sudo apt-get install tesseract-ocr-eng

Windows用户注意事项

多种方式在您的系统上安装Tesseract OCR,但如果您只想快速启动,我推荐使用Capture2Text包与Chocolatey

choco install capture2text --version 3.9

⚠️ Capture2Text的最新版本不再提供tesseract二进制文件。


macOS用户注意事项

使用MacPorts,您可以安装对单个语言的支持,如下所示

$ sudo port install tesseract-<langcode>

但是,使用Homebrew则不行。它默认只提供对英语的支持,因此如果您打算使用它进行其他语言的处理,最快的方法是安装所有语言包

$ brew install tesseract --with-all-languages

使用方法

use Baraveli\BmlOcr\BmlOcr;

BmlOcr::make("/home/image/imagename.jpg", __DIR__)
        ->detect();

make方法的第一个参数是要进行OCR的收据路径,第二个参数是临时目录路径。当第一次给出图像路径时,它会创建一个具有更高锐度的临时图像,因为原始BML收据使用灰色进行排版。仅使用默认图像很难检测。检测完成后将其删除。

调用detect方法时,将返回数组形式的检测结果。

$receipt = BmlOcr::make("/home/image/imagename.jpg", __DIR__)
        ->detect();

var_dump($receipt);

结果

array:9 [
  0 => "Transaction Receipt"
  1 => "Status SUCCESS"
  2 => "Message Transfer transaction is successful."
  3 => "Ref # BLAZ418696504822"
  4 => "Date 30/07/2020 21:46"
  5 => "From SHIHAM A.RAHMAN"
  6 => "To Mohamed Jinas"
  7 => "7730000151614"
  8 => "Amount MVR 750"
]