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 适配器直接启动可执行文件,不经过 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