Gli esempi in C# si applicano solo a FRE per Windows.
La tecnologia Intelligent Character Recognition (ICR) di ABBYY FineReader Engine consente di riconoscere il testo scritto a mano e in stampatello.
Non tutte le lingue di riconoscimento supportano il riconoscimento del testo scritto a mano o in stampatello. Vedere l’elenco delle lingue predefinite.
Durante l’analisi del layout, i blocchi contenenti testo scritto a mano e in stampatello possono essere individuati e contrassegnati per il riconoscimento con il tipo di testo scritto a mano. Per rilevare e riconoscere il testo scritto a mano o in stampatello, impostare su TRUE la proprietà DetectHandwritten di PageAnalysisParams. Impostare la proprietà SpeedQualityMode su SQM_Accurate, perché la scrittura a mano può essere rilevata solo nella modalità di analisi accurata.Il testo scritto a mano e quello in stampatello sono specificati dalla stessa costante TextTypeEnum::TT_Handwritten. I blocchi di testo verranno creati con la proprietà TextTypes dell’oggetto ITextBlock::RecognizerParams impostata su TT_Handwritten.Durante il riconoscimento, il testo verrà riconosciuto come scritto a mano se la lingua di riconoscimento supporta il testo scritto a mano, oppure come in stampatello se supporta solo il testo in stampatello.
Codice C#
// Oggetto globale ABBYY FineReader EngineFREngine.IEngine engine;...// Aprire un file immagine...FREngine.IFRDocument frdoc;// Creare DocumentProcessingParams e impostare i parametriFREngine.IDocumentProcessingParams processingParams = engine.CreateDocumentProcessingParams();processingParams.PageProcessingParams.PageAnalysisParams.SpeedQualityMode = SQM_Accurate;processingParams.PageProcessingParams.PageAnalysisParams.DetectHandwritten = true;// Impostare i tipi di testo per riconoscere sia il testo normale sia la scrittura a manoprocessingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;// Utilizzare i parametri per l'elaborazionefrDoc.Process( processingParams );...
In alternativa, puoi impostare manualmente i parametri di riconoscimento per i blocchi con testo scritto a mano tramite la proprietà ITextBlock::RecognizerParams:
[Facoltativo] Le lettere in stampatello possono spesso essere racchiuse in una cornice, in un riquadro e così via. In questo caso, imposta il tipo di marcatura intorno alle lettere nella proprietà FieldMarkingType dell’oggetto RecognizerParams. Se ogni lettera è scritta in una cella separata, usa la proprietà CellsCount per impostare il numero di celle di carattere nel blocco riconosciuto.
Codice C#
// Oggetto globale ABBYY FineReader EngineFREngine.IEngine engine;...// Apri un file immagine...// Ottieni l'oggetto Layout dalla paginaFREngine.ILayout layout = frPage.Layout;// Imposta l'area del bloccoFREngine.IRegion region = engine.CreateRegion();region.AddRect( 491, 314, 2268, 404 );// Crea un nuovo bloccoFREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();// Specifica il tipo di testotextBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;// Specifica il tipo di marcatura intorno alle letteretextBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;// Riconoscimento ed esportazione...