timatanga / ocr
timatanga OCR 包。使用 tesseract ocr 进行图像 OCR 处理
v0.1.0
2021-09-29 12:38 UTC
Requires
- php: ^8.0
- symfony/process: 6.0.x-dev
Requires (Dev)
- phpunit/phpunit: 10.0.x-dev
- symfony/var-dumper: 6.0.x-dev
This package is auto-updated.
Last update: 2024-09-29 06:20:04 UTC
README
此包是 tesseract-ocr (https://github.com/tesseract-ocr/tesseract) 包的包装器。此库依赖于
- Symfony Process
- Tesseract OCR,版本 4 或更高。
安装
composer require dbizapps/ocr
依赖
根据您的操作系统需求,有许多安装 Tesseract OCR 的选项。个人经验仅限于 macOS,以下有推荐。对此不便之处表示歉意。
macOS
仅支持英文的 Tesseract OCR 安装
$ brew install tesseract
对于完整的语言安装,您可以选择
$ brew install tesseract tesseract-lang
基本用法
创建识别引擎实例不需要其他属性
// create ocr instance
$engine = new Recognition;
检索 tesseract 特定信息
// retrieve tesseract version
$version = $engine->version();
// retrieve supported languages
$lang = $engine->supportedLanguages();
输入/输出配置
在创建新的识别实例或之后的状态下可以设置目标图像
$engine = new Recognition(<image-path>);
$engine->setImage(<image-path>);
引擎可以以文件模式运行,将结果存储在指定的输出文件和输出路径中。不提供输出配置选项时,后续扫描过程将流式传输结果
$engine = new Recognition(<image-path>, <output-dir>, <output-filename>);
自定义配置
要了解 Tesseract OCR 配置选项的概述,请参阅 https://github.com/tesseract-ocr/tesseract
配置选项可以单独设置,如
// Scan density
$engine->setConfig(['dpi' => 300]);
// OCR Engine mode.
$engine->setConfig(['oem' => 2]);
// Page segmentation method
$engine->setConfig(['psm' => 10]);
// Languages
$engine->setConfig(['languages' => ['eng', 'fra']]);
// output configuration
$engine->setConfig(['configFile' => ['pdf']]);
configFile 支持的选项
- alto 以 ALTO 格式输出(OUTPUTBASE.xml)。
- hocr 以 hOCR 格式输出(OUTPUTBASE.hocr)。
- pdf 以 PDF 格式输出(OUTPUTBASE.pdf)。
- txt 以纯文本格式输出(OUTPUTBASE.txt / 默认)。
除了单独设置选项之外,还有一个全局设置方法
$engine->setConfig([
'dpi' => 300,
'oem' => 2,
'psm' => 10,
'languages' => ['eng', 'fra'],
'configFile' => ['pdf'],
])
扫描用法
扫描图像就像这样简单
$result = $engine->scan()
如果设置了输出路径和输出文件名,则提供的结果代表扫描输出的路径。否则,结果表示扫描输出。