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