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 階層と検証済み行ベースラインをパースします

向き検出は既定で無効です。有効にした場合、OSD 結果が欠落していたり信頼度が低かったりすると、方向を推測する代わりに明示的に失敗します

検証済みの補正は、補間なしの 90 度回転で対応する非インターレースの 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