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 | trained-data 目錄,或空字串讓引擎走它平常的資料查找流程 |
| DetectOrientation | 預設 False;true 會在辨識前執行 OSD,並明確修正回報的 0、90、180 或 270 度順時針旋轉 |
| MinOrientationConfidence | 有限的非負 Tesseract OSD 信賴分數,預設 15;這個分數與 0 到 1 的字組信賴度閾值是兩回事 |
| TimeoutMS | 每個引擎處理序的逾時毫秒數(正數),預設 120000;需要定向的頁面可能分別執行 OSD 與辨識兩個處理序 |
傳回值
組態被接受時 Delphi 傳回 true;DLL 與 ActiveX 在成功時傳回 1,組態無效時傳回 0
備註
引擎是選配的,由應用程式自行提供;設定組態不會安裝執行檔、下載模型,也不會修改使用者的 Tesseract 設定
執行檔路徑與選擇性的資料目錄路徑會在設定時檢查;模型是否可用與引擎實際執行,則等到真正辨識頁面時才檢查
要求的語言需要對應的 trained-data 檔案,例如 eng.traineddata;方向偵測還需要 osd.traineddata
Windows 配接器直接啟動執行檔,不經過 shell 也不顯示主控台,使用私有的暫存檔,強制時間與輸出限制,並解析 hOCR 階層與經驗證的行基線
方向偵測預設停用;啟用後,OSD 結果遺漏或信賴度過低都會明確失敗,而不是猜一個方向
經驗證的修正會把支援的非交錯式 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