Zum Hauptinhalt springen
C#-Beispiele gelten nur für FRE unter Windows.
Die Intelligent Character Recognition (ICR)-Technologie von ABBYY FineReader Engine ermöglicht die Erkennung von handschriftlichen und in Druckschrift geschriebenen Texten.
  • Nicht alle Erkennungssprachen unterstützen die Erkennung handschriftlicher oder in Druckschrift geschriebener Texte. Siehe Liste vordefinierter Sprachen.
  • Sonderzeichen wie * ^ ™ © ® № § ¡ ¿ ‰ können nicht erkannt werden.
Bei der Layout-Analyse können Blöcke mit handschriftlichen und in Druckschrift geschriebenen Texten gefunden und für die Erkennung mit dem Texttyp „handschriftlich“ markiert werden. Um handschriftlichen oder in Druckschrift geschriebenen Text zu erkennen, setzen Sie die Eigenschaft DetectHandwritten der Eigenschaft PageAnalysisParams auf TRUE. Setzen Sie die Eigenschaft SpeedQualityMode auf SQM_Accurate, da Handschrift nur im genauen Analysemodus erkannt werden kann. Handschriftlicher und in Druckschrift geschriebener Text werden durch dieselbe Konstante TextTypeEnum::TT_Handwritten angegeben. Die Textblöcke werden mit der auf TT_Handwritten gesetzten Eigenschaft TextTypes des Objekts ITextBlock::RecognizerParams erstellt. Bei der Erkennung wird der Text als handschriftlich erkannt, wenn die Erkennungssprache handschriftlichen Text unterstützt, oder als in Druckschrift geschrieben, wenn sie nur in Druckschrift geschriebenen Text unterstützt.
// Globales ABBYY FineReader Engine-Objekt
FREngine.IEngine engine;
...
// Eine Bilddatei öffnen
...
FREngine.IFRDocument frdoc;
// DocumentProcessingParams erstellen und Parameter festlegen
FREngine.IDocumentProcessingParams processingParams = engine.CreateDocumentProcessingParams();
processingParams.PageProcessingParams.PageAnalysisParams.SpeedQualityMode = SQM_Accurate;
processingParams.PageProcessingParams.PageAnalysisParams.DetectHandwritten = true;
// Die Texttypen so festlegen, dass sowohl normaler Text als auch Handschrift erkannt werden
processingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;
// Die Parameter für die Verarbeitung verwenden
frDoc.Process( processingParams );
...

Blöcke manuell markieren

Alternativ können Sie die Erkennungsparameter für Blöcke mit handschriftlichem Text manuell über die Eigenschaft ITextBlock::RecognizerParams festlegen:
  1. Setzen Sie die Eigenschaft TextTypes des Objekts RecognizerParams auf TT_Handwritten.
  2. [Optional] Von Hand geschriebene Druckbuchstaben können oft von einem Rahmen, Kästchen usw. umgeben sein. Legen Sie in diesem Fall den Typ der Markierung um die Buchstaben in der Eigenschaft FieldMarkingType des RecognizerParams-Objekts fest. Wenn jeder Buchstabe in eine separate Zelle geschrieben wird, verwenden Sie die Eigenschaft CellsCount, um die Anzahl der Zeichenzellen im erkannten Block festzulegen.
    // Globales ABBYY FineReader Engine-Objekt
    FREngine.IEngine engine;
    ...
    // Eine Bilddatei öffnen
    ...
    // Das Layout-Objekt der Seite abrufen
    FREngine.ILayout layout = frPage.Layout;
    // Blockregion festlegen
    FREngine.IRegion region = engine.CreateRegion();
    region.AddRect( 491, 314, 2268, 404 );
    // Einen neuen Block erstellen
    FREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );
    FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();
    // Den Texttyp angeben
    textBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
    // Den Typ der Markierung um die Buchstaben angeben
    textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
    // Erkennung und Export
    ...
    

    Siehe auch

    RecognizerParams Liste der vordefinierten Sprachen