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.
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.
C#-Code
// Globales ABBYY FineReader Engine-ObjektFREngine.IEngine engine;...// Eine Bilddatei öffnen...FREngine.IFRDocument frdoc;// DocumentProcessingParams erstellen und Parameter festlegenFREngine.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 werdenprocessingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;// Die Parameter für die Verarbeitung verwendenfrDoc.Process( processingParams );...
Alternativ können Sie die Erkennungsparameter für Blöcke mit handschriftlichem Text manuell über die Eigenschaft ITextBlock::RecognizerParams festlegen:
[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.
C#-Code
// Globales ABBYY FineReader Engine-ObjektFREngine.IEngine engine;...// Eine Bilddatei öffnen...// Das Layout-Objekt der Seite abrufenFREngine.ILayout layout = frPage.Layout;// Blockregion festlegenFREngine.IRegion region = engine.CreateRegion();region.AddRect( 491, 314, 2268, 404 );// Einen neuen Block erstellenFREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();// Den Texttyp angebentextBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;// Den Typ der Markierung um die Buchstaben angebentextBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;// Erkennung und Export...