ConfigureTesseractOCR

OCR, 구성

설명

인스턴스 소유 Tesseract 공급자를 만들어 OnOCRPage에 지정하므로, 애플리케이션 콜백 없이도 페이지 및 문서 OCR 메서드를 쓸 수 있습니다

구문

Delphi

Function TPDFlib.ConfigureTesseractOCR(Const Executable,
  TessDataDirectory: WideString; DetectOrientation: Boolean= False;
  MinOrientationConfidence: Double= 15; TimeoutMS: Integer= 120000): Boolean;

ActiveX

Function PDFlib::ConfigureTesseractOCR(Executable As String,
  TessDataDirectory As String, DetectOrientation As Long,
  MinOrientationConfidence As Double, TimeoutMS As Long) As Long

DLL

int DLConfigureTesseractOCR(int InstanceID, const wchar_t* Executable,
  const wchar_t* TessDataDirectory, int DetectOrientation,
  double MinOrientationConfidence, int TimeoutMS);
int DLConfigureTesseractOCRA(int InstanceID, const char* Executable,
  const char* TessDataDirectory, int DetectOrientation,
  double MinOrientationConfidence, int TimeoutMS);

매개변수

Executable기존 Tesseract 실행 파일의 경로
TessDataDirectory학습 데이터 디렉터리이며, 빈 문자열이면 엔진이 평소 데이터 조회 방식을 따릅니다
DetectOrientation기본값은 False입니다. true이면 인식 전에 OSD를 실행하고 보고된 시계 방향 0, 90, 180, 270도 회전을 명시적으로 보정합니다
MinOrientationConfidence유한한 음이 아닌 Tesseract OSD 신뢰도 점수로 기본값은 15입니다. 이 점수는 0~1 단어 신뢰도 임계값과 별개입니다
TimeoutMS엔진 프로세스 하나당 양수 밀리초 타임아웃으로 기본값은 120000입니다. 방향 보정 페이지는 OSD와 인식 프로세스를 따로 실행할 수 있습니다

반환 값

Delphi는 구성이 승인되면 true를 반환하고, DLL과 ActiveX는 성공 시 1, 잘못된 구성이면 0을 반환합니다

비고

엔진은 애플리케이션이 제공하는 선택 요소입니다. 구성이 실행 파일을 설치하거나 모델을 내려받거나 사용자의 Tesseract 구성을 바꾸지는 않습니다

실행 파일 경로와 선택적 데이터 디렉터리 경로는 구성 시점에 검사하고, 모델 가용성과 실제 엔진 실행은 페이지를 인식할 때 검사합니다

요청한 언어에는 eng.traineddata 같은 학습 데이터 파일이 필요하고, 방향 감지에는 osd.traineddata도 필요합니다

Windows 어댑터는 셸이나 보이는 콘솔 없이 실행 파일을 직접 시작하고, 전용 임시 파일을 쓰고, 시간과 출력 제한을 강제하며, hOCR 계층과 검증된 행 베이스라인을 파싱합니다

방향 감지는 기본적으로 꺼져 있습니다. 켜면 방향 결과가 없거나 신뢰도가 낮을 때 방향을 추측하는 대신 명시적으로 실패합니다

검증된 보정은 보간 없이 4분의 1 회전으로 인터레이스 없는 8비트 PNG 픽셀을 돌리고 바로 선 이미지를 인식한 뒤, 단어 상자와 베이스라인 끝점을 원본 이미지 좌표로 되돌려 매핑합니다

매핑된 베이스라인은 이미 텍스트 방향을 담고 있으므로 방향 각도를 다시 받지 않습니다

잘못된 재구성은 기존 공급자를 유지하고, 승인된 재구성은 이전 소유 공급자를 교체합니다

나중에 지정한 애플리케이션 콜백은 애플리케이션 소유로 남아 ClearTesseractOCR와 인스턴스 소멸에도 유지됩니다

예제

if not PDF.ConfigureTesseractOCR('C:\Tools\Tesseract\tesseract.exe',
  'C:\OCR\tessdata', True, 15, 120000) then
  raise Exception.Create(PDF.LastOCRError);
Processed := PDF.OCRDocumentEx('', 300, 'eng', 'Arial', 0.5,
  PDF_OCR_SKIP_EXISTING_TEXT or PDF_OCR_REPLACE_OWNED_LAYER);
ReportJSON := PDF.GetOCRDiagnosticsJSON;

참고 항목

ClearTesseractOCR, OCRPageEx, OCRDocumentEx, GetOCRDiagnosticsJSON, OnOCRPage