thiagoalessio/tesseract_ocr
Composer 安装命令:
composer require thiagoalessio/tesseract_ocr
包简介
A wrapper to work with Tesseract OCR inside PHP.
README 文档
README
A wrapper to work with Tesseract OCR inside PHP.
Installation
Via Composer:
$ composer require thiagoalessio/tesseract_ocr
‼️ This library depends on Tesseract OCR, version 3.02 or later.
Note for Windows users
There are many ways to install Tesseract OCR on your system, but if you just want something quick to get up and running, I recommend installing the Capture2Text package with Chocolatey.
choco install capture2text --version 3.9
⚠️ Recent versions of Capture2Text stopped shipping the tesseract binary.
Note for macOS users
With MacPorts you can install support for individual languages, like so:
$ sudo port install tesseract-<langcode>
But that is not possible with Homebrew. It comes only with English support by default, so if you intend to use it for other language, the quickest solution is to install them all:
$ brew install tesseract tesseract-lang
Usage
Basic usage
use thiagoalessio\TesseractOCR\TesseractOCR; echo (new TesseractOCR('text.png')) ->run();
The quick brown fox
jumps over
the lazy dog.
Other languages
use thiagoalessio\TesseractOCR\TesseractOCR; echo (new TesseractOCR('german.png')) ->lang('deu') ->run();
Bülowstraße
Multiple languages
use thiagoalessio\TesseractOCR\TesseractOCR; echo (new TesseractOCR('mixed-languages.png')) ->lang('eng', 'jpn', 'spa') ->run();
I eat すし y Pollo
Inducing recognition
use thiagoalessio\TesseractOCR\TesseractOCR; echo (new TesseractOCR('8055.png')) ->allowlist(range('A', 'Z')) ->run();
BOSS
Breaking CAPTCHAs
Yes, I know some of you might want to use this library for the noble purpose of breaking CAPTCHAs, so please take a look at this comment:
https://github.com/thiagoalessio/tesseract-ocr-for-php/issues/91#issuecomment-342290510
API
run
Executes a tesseract command, optionally receiving an integer as timeout,
in case you experience stalled tesseract processes.
$ocr = new TesseractOCR(); $ocr->run();
$ocr = new TesseractOCR(); $timeout = 500; $ocr->run($timeout);
image
Define the path of an image to be recognized by tesseract.
$ocr = new TesseractOCR(); $ocr->image('/path/to/image.png'); $ocr->run();
imageData
Set the image to be recognized by tesseract from a string, with its size.
This can be useful when dealing with files that are already loaded in memory.
You can easily retrieve the image data and size of an image object :
//Using Imagick $data = $img->getImageBlob(); $size = $img->getImageLength(); //Using GD ob_start(); // Note that you can use any format supported by tesseract imagepng($img, null, 0); $size = ob_get_length(); $data = ob_get_clean(); $ocr = new TesseractOCR(); $ocr->imageData($data, $size); $ocr->run();
executable
Define a custom location of the tesseract executable,
if by any reason it is not present in the $PATH.
echo (new TesseractOCR('img.png')) ->executable('/path/to/tesseract') ->run();
version
Returns the current version of tesseract.
echo (new TesseractOCR())->version();
availableLanguages
Returns a list of available languages/scripts.
foreach((new TesseractOCR())->availableLanguages() as $lang) echo $lang;
More info: https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc#languages-and-scripts
tessdataDir
Specify a custom location for the tessdata directory.
echo (new TesseractOCR('img.png')) ->tessdataDir('/path') ->run();
userWords
Specify the location of user words file.
This is a plain text file containing a list of words that you want to be
considered as a normal dictionary words by tesseract.
Useful when dealing with contents that contain technical terminology, jargon, etc.
$ cat /path/to/user-words.txt
foo
bar
echo (new TesseractOCR('img.png')) ->userWords('/path/to/user-words.txt') ->run();
userPatterns
Specify the location of user patterns file.
If the contents you are dealing with have known patterns, this option can help a lot tesseract's recognition accuracy.
$ cat /path/to/user-patterns.txt'
1-\d\d\d-GOOG-441
www.\n\\\*.com
echo (new TesseractOCR('img.png')) ->userPatterns('/path/to/user-patterns.txt') ->run();
lang
Define one or more languages to be used during the recognition. A complete list of available languages can be found at: https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc#languages
Tip from @daijiale: Use the combination ->lang('chi_sim', 'chi_tra')
for proper recognition of Chinese.
echo (new TesseractOCR('img.png')) ->lang('lang1', 'lang2', 'lang3') ->run();
psm
Specify the Page Segmentation Method, which instructs tesseract how to
interpret the given image.
More info: https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#page-segmentation-method
echo (new TesseractOCR('img.png')) ->psm(6) ->run();
oem
Specify the OCR Engine Mode. (see tesseract --help-oem)
echo (new TesseractOCR('img.png')) ->oem(2) ->run();
dpi
Specify the image DPI. It is useful if your image does not contain this information in its metadata.
echo (new TesseractOCR('img.png')) ->dpi(300) ->run();
allowlist
This is a shortcut for ->config('tessedit_char_whitelist', 'abcdef....').
echo (new TesseractOCR('img.png')) ->allowlist(range('a', 'z'), range(0, 9), '-_@') ->run();
configFile
Specify a config file to be used. It can either be the path to your own config file or the name of one of the predefined config files: https://github.com/tesseract-ocr/tesseract/tree/master/tessdata/configs
echo (new TesseractOCR('img.png')) ->configFile('hocr') ->run();
setOutputFile
Specify an Outputfile to be used. Be aware: If you set an outputfile then
the option withoutTempFiles is ignored.
Tempfiles are written (and deleted) even if withoutTempFiles = true.
In combination with configFile you are able to get the hocr, tsv or
pdf files.
echo (new TesseractOCR('img.png')) ->configFile('pdf') ->setOutputFile('/PATH_TO_MY_OUTPUTFILE/searchable.pdf') ->run();
digits
Shortcut for ->configFile('digits').
echo (new TesseractOCR('img.png')) ->digits() ->run();
hocr
Shortcut for ->configFile('hocr').
echo (new TesseractOCR('img.png')) ->hocr() ->run();
Shortcut for ->configFile('pdf').
echo (new TesseractOCR('img.png')) ->pdf() ->run();
quiet
Shortcut for ->configFile('quiet').
echo (new TesseractOCR('img.png')) ->quiet() ->run();
tsv
Shortcut for ->configFile('tsv').
echo (new TesseractOCR('img.png')) ->tsv() ->run();
txt
Shortcut for ->configFile('txt').
echo (new TesseractOCR('img.png')) ->txt() ->run();
tempDir
Define a custom directory to store temporary files generated by tesseract.
Make sure the directory actually exists and the user running php is allowed
to write in there.
echo (new TesseractOCR('img.png')) ->tempDir('./my/custom/temp/dir') ->run();
withoutTempFiles
Specify that tesseract should output the recognized text without writing to temporary files.
The data is gathered from the standard output of tesseract instead.
echo (new TesseractOCR('img.png')) ->withoutTempFiles() ->run();
Other options
Any configuration option offered by Tesseract can be used like that:
echo (new TesseractOCR('img.png')) ->config('config_var', 'value') ->config('other_config_var', 'other value') ->run();
Or like that:
echo (new TesseractOCR('img.png')) ->configVar('value') ->otherConfigVar('other value') ->run();
More info: https://github.com/tesseract-ocr/tesseract/wiki/ControlParams
Thread-limit
Sometimes, it may be useful to limit the number of threads that tesseract is
allowed to use (e.g. in this case).
Set the maxmium number of threads as param for the run function:
echo (new TesseractOCR('img.png')) ->threadLimit(1) ->run();
How to contribute
You can contribute to this project by:
- Opening an Issue if you found a bug or wish to propose a new feature;
- Placing a Pull Request with code that fix a bug, missing/wrong documentation or implement a new feature;
Just make sure you take a look at our Code of Conduct and Contributing instructions.
License
tesseract-ocr-for-php is released under the MIT License.
thiagoalessio/tesseract_ocr 适用场景与选型建议
thiagoalessio/tesseract_ocr 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.79M 次下载、GitHub Stars 达 3.03k, 最近一次更新时间为 2012 年 05 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Tesseract」 「OCR」 「text recognition」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 thiagoalessio/tesseract_ocr 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 thiagoalessio/tesseract_ocr 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 thiagoalessio/tesseract_ocr 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Texy converts plain text in easy to read Texy syntax into structurally valid (X)HTML. It supports adding of images, links, nested lists, tables and has full support for CSS. Texy supports hyphenation of long words (which reflects language rules), clickable emails and URL (emails are obfuscated again
Common libraries used by Zimbra Api
Laravel OCR & Document Data Extractor - A powerful OCR and document parsing engine for Laravel
Text file manipulation
A wrapper to work with Tesseract OCR inside PHP.
The Best Image Ocr SDK For BAT.
统计信息
- 总下载量: 3.79M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3055
- 点击次数: 27
- 依赖项目数: 34
- 推荐数: 5
其他信息
- 授权协议: MIT
- 更新时间: 2012-05-12



