PHP 내부에서 Tesseract OCR과 함께 작동하는 래퍼입니다.
작곡가를 통해:
$ composer require thiagoalessio/tesseract_ocr
시스템에 Tesseract OCR을 설치하는 방법은 여러 가지가 있지만 빠른 설치 및 실행을 원한다면 Chocolatey와 함께 Capture2Text 패키지를 설치하는 것이 좋습니다.
choco install capture2text --version 3.9
tesseract
바이너리 제공이 중단되었습니다.
MacPorts를 사용하면 다음과 같이 개별 언어에 대한 지원을 설치할 수 있습니다.
$ sudo port install tesseract-<langcode>
하지만 Homebrew에서는 불가능합니다. 기본적으로 영어 만 지원되므로 다른 언어로 사용하려는 경우 가장 빠른 해결 방법은 모두 설치하는 것입니다.
$ brew install tesseract tesseract-lang
use thiagoalessio TesseractOCR TesseractOCR ;
echo ( new TesseractOCR ( ' text.png ' ))
-> run ();
The quick brown fox
jumps over
the lazy dog.
use thiagoalessio TesseractOCR TesseractOCR ;
echo ( new TesseractOCR ( ' german.png ' ))
-> lang ( ' deu ' )
-> run ();
Bülowstraße
use thiagoalessio TesseractOCR TesseractOCR ;
echo ( new TesseractOCR ( ' mixed-languages.png ' ))
-> lang ( ' eng ' , ' jpn ' , ' spa ' )
-> run ();
I eat すし y Pollo
use thiagoalessio TesseractOCR TesseractOCR ;
echo ( new TesseractOCR ( ' 8055.png ' ))
-> allowlist ( range ( ' A ' , ' Z ' ))
-> run ();
BOSS
예, 여러분 중 일부는 CAPTCHA를 해독하려는 고귀한 목적으로 이 라이브러리를 사용하고 싶어할 수도 있다는 것을 알고 있으므로 다음 의견을 살펴보시기 바랍니다.
#91(댓글)
tesseract 프로세스가 중단되는 경우 선택적으로 timeout
으로 정수를 수신하여 tesseract
명령을 실행합니다.
$ ocr = new TesseractOCR ();
$ ocr -> run ();
$ ocr = new TesseractOCR ();
$ timeout = 500 ;
$ ocr -> run ( $ timeout );
tesseract
에서 인식할 이미지의 경로를 정의합니다.
$ ocr = new TesseractOCR ();
$ ocr -> image ( ' /path/to/image.png ' );
$ ocr -> run ();
문자열에서 tesseract
가 인식할 이미지를 크기와 함께 설정합니다. 이는 이미 메모리에 로드된 파일을 처리할 때 유용할 수 있습니다. 이미지 객체의 이미지 데이터와 크기를 쉽게 검색할 수 있습니다.
//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 ();
어떤 이유로든 tesseract
실행 파일이 $PATH
에 없는 경우 사용자 정의 위치를 정의합니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> executable ( ' /path/to/tesseract ' )
-> run ();
tesseract
의 현재 버전을 반환합니다.
echo ( new TesseractOCR ())-> version ();
사용 가능한 언어/스크립트 목록을 반환합니다.
foreach (( new TesseractOCR ())-> availableLanguages () as $ lang ) echo $ lang ;
추가 정보: https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc#언어-and-scripts
tessdata 디렉터리의 사용자 정의 위치를 지정합니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> tessdataDir ( ' /path ' )
-> run ();
사용자 단어 파일의 위치를 지정합니다.
이것은 tesseract
에 의해 일반 사전 단어로 간주되기를 원하는 단어 목록이 포함된 일반 텍스트 파일입니다.
기술용어, 전문용어 등이 포함된 내용을 다룰 때 유용합니다.
$ cat /path/to/user-words.txt
foo
bar
echo ( new TesseractOCR ( ' img.png ' ))
-> userWords ( ' /path/to/user-words.txt ' )
-> run ();
사용자 패턴 파일의 위치를 지정합니다.
다루고 있는 콘텐츠에 알려진 패턴이 있는 경우 이 옵션은 tesseract의 인식 정확도에 많은 도움이 될 수 있습니다.
$ cat /path/to/user-patterns.txt'
1-ddd-GOOG-441
www.n\*.com
echo ( new TesseractOCR ( ' img.png ' ))
-> userPatterns ( ' /path/to/user-patterns.txt ' )
-> run ();
인식 중에 사용할 하나 이상의 언어를 정의합니다. 사용 가능한 언어의 전체 목록은 https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc#언어s에서 확인할 수 있습니다.
@daijiale의 팁: 중국어를 올바르게 인식하려면 ->lang('chi_sim', 'chi_tra')
조합을 사용하세요.
echo ( new TesseractOCR ( ' img.png ' ))
-> lang ( ' lang1 ' , ' lang2 ' , ' lang3 ' )
-> run ();
주어진 이미지를 해석하는 방법을 tesseract
지시하는 페이지 분할 방법을 지정합니다.
추가 정보: https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#page-segmentation-method
echo ( new TesseractOCR ( ' img.png ' ))
-> psm ( 6 )
-> run ();
OCR 엔진 모드를 지정합니다. ( tesseract --help-oem
참조)
echo ( new TesseractOCR ( ' img.png ' ))
-> oem ( 2 )
-> run ();
이미지 DPI를 지정합니다. 이미지의 메타데이터에 이 정보가 포함되어 있지 않은 경우 유용합니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> dpi ( 300 )
-> run ();
이것은 ->config('tessedit_char_whitelist', 'abcdef....')
의 바로가기입니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> allowlist ( range ( ' a ' , ' z ' ), range ( 0 , 9 ), ' -_@ ' )
-> run ();
사용할 구성 파일을 지정합니다. 자체 구성 파일의 경로이거나 사전 정의된 구성 파일 중 하나의 이름일 수 있습니다: https://github.com/tesseract-ocr/tesseract/tree/master/tessdata/configs
echo ( new TesseractOCR ( ' img.png ' ))
-> configFile ( ' hocr ' )
-> run ();
사용할 출력 파일을 지정합니다. 주의 사항: 출력 파일을 설정하면 withoutTempFiles
옵션이 무시됩니다. withoutTempFiles = true
인 경우에도 임시 파일이 기록되고 삭제됩니다.
configFile
과 함께 hocr
, tsv
또는 pdf
파일을 얻을 수 있습니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> configFile ( ' pdf ' )
-> setOutputFile ( ' /PATH_TO_MY_OUTPUTFILE/searchable.pdf ' )
-> run ();
->configFile('digits')
의 단축키입니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> digits ()
-> run ();
->configFile('hocr')
의 단축키입니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> hocr ()
-> run ();
->configFile('pdf')
에 대한 바로가기.
echo ( new TesseractOCR ( ' img.png ' ))
-> pdf ()
-> run ();
->configFile('quiet')
의 단축키입니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> quiet ()
-> run ();
->configFile('tsv')
의 바로가기.
echo ( new TesseractOCR ( ' img.png ' ))
-> tsv ()
-> run ();
->configFile('txt')
의 단축키입니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> txt ()
-> run ();
tesseract에서 생성된 임시 파일을 저장할 사용자 정의 디렉터리를 정의합니다. 디렉토리가 실제로 존재하는지, php
실행하는 사용자가 디렉토리에 쓸 수 있는지 확인하십시오.
echo ( new TesseractOCR ( ' img.png ' ))
-> tempDir ( ' ./my/custom/temp/dir ' )
-> run ();
tesseract
임시 파일에 쓰지 않고 인식된 텍스트를 출력하도록 지정합니다. 대신 데이터는 tesseract
의 표준 출력에서 수집됩니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> withoutTempFiles ()
-> run ();
Tesseract에서 제공하는 모든 구성 옵션은 다음과 같이 사용할 수 있습니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> config ( ' config_var ' , ' value ' )
-> config ( ' other_config_var ' , ' other value ' )
-> run ();
아니면 다음과 같습니다:
echo ( new TesseractOCR ( ' img.png ' ))
-> configVar ( ' value ' )
-> otherConfigVar ( ' other value ' )
-> run ();
추가 정보: https://github.com/tesseract-ocr/tesseract/wiki/ControlParams
때로는 tesseract가 사용할 수 있는 스레드 수를 제한하는 것이 유용할 수 있습니다(예: 이 경우). run
함수의 매개변수로 최대 스레드 수를 설정합니다.
echo ( new TesseractOCR ( ' img.png ' ))
-> threadLimit ( 1 )
-> run ();
다음을 통해 이 프로젝트에 기여할 수 있습니다.
행동강령과 기여 지침을 꼭 읽어보세요.
tesseract-ocr-for-php는 MIT 라이선스에 따라 출시됩니다.
다음으로 제작됨 베를린에서