ConfigureTesseractOCR

OCR, Konfiguration

Beschreibung

Erzeugt einen instanzeigenen Tesseract-Anbieter und weist ihn OnOCRPage zu, sodass die Seiten- und Dokument-OCR-Methoden ohne anwendungseigenen Rückruf nutzbar sind

Syntax

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);

Parameter

ExecutableDer Pfad zu einer vorhandenen Tesseract-Programmdatei
TessDataDirectoryDas Verzeichnis mit den trainierten Daten oder eine leere Zeichenfolge, damit die Engine ihre normale Datensuche verwendet
DetectOrientationStandardmäßig False; true führt OSD vor der Erkennung aus und korrigiert ausdrücklich die gemeldete Drehung von 0, 90, 180 oder 270 Grad im Uhrzeigersinn
MinOrientationConfidenceEin endlicher, nicht negativer Tesseract-OSD-Konfidenzwert, Standard 15; dieser Wert ist vom Wortkonfidenz-Schwellenwert von 0 bis 1 zu unterscheiden
TimeoutMSDas positive Zeitlimit in Millisekunden für jeden Engine-Prozess, Standard 120000; eine ausgerichtete Seite kann separate OSD- und Erkennungsprozesse ausführen

Rückgabewerte

Delphi liefert true, wenn die Konfiguration akzeptiert wird; DLL und ActiveX geben 1 für Erfolg und 0 für eine ungültige Konfiguration zurück

Anmerkungen

Die Engine ist optional und wird von der Anwendung geliefert; die Konfiguration installiert keine Programmdatei, lädt keine Modelle herunter und ändert die Tesseract-Konfiguration des Nutzers nicht

Der Programmdateipfad und der optionale Datenverzeichnispfad werden während der Konfiguration geprüft; Modellverfügbarkeit und tatsächliche Engine-Ausführung werden geprüft, wenn eine Seite erkannt wird

Die angeforderte Sprache benötigt ihre trainierte Datendatei, etwa eng.traineddata; die Ausrichtungserkennung benötigt zusätzlich osd.traineddata

Der Windows-Adapter startet die Programmdatei direkt ohne Shell oder sichtbare Konsole, verwendet private temporäre Dateien, setzt Zeit- und Ausgabegrenzen durch und parst hOCR-Hierarchie und verifizierte Zeilengrundlinien

Die Ausrichtungserkennung ist standardmäßig deaktiviert; wenn sie aktiviert ist, schlägt ein fehlendes OSD-Ergebnis oder eines mit niedriger Konfidenz explizit fehl, statt eine Richtung zu schätzen

Eine verifizierte Korrektur dreht unterstützte, nicht interleaved 8-Bit-PNG-Pixel um eine Vierteldrehung ohne Interpolation, erkennt das aufrechte Bild und bildet Wortboxen und Grundlinienendpunkte zurück in die ursprünglichen Bildkoordinaten ab

Die abgebildete Grundlinie trägt bereits die Textrichtung und erhält den Ausrichtungswinkel nicht ein zweites Mal

Eine ungültige Neukonfiguration bewahrt den vorhandenen Anbieter; eine akzeptierte Neukonfiguration ersetzt den vorherigen bibliothekseigenen Anbieter

Ein anschließend zugewiesener anwendungseigener Rückruf bleibt der Anwendung zugeordnet und wird von ClearTesseractOCR und der Instanzzerstörung bewahrt

Beispiel

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;

Siehe auch

ClearTesseractOCR, OCRPageEx, OCRDocumentEx, GetOCRDiagnosticsJSON, OnOCRPage