Vai al contenuto principale
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.
  • I simboli speciali, come * ^ ™ © ® № § ¡ ¿ ‰, non possono essere riconosciuti.
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.
// Oggetto globale ABBYY FineReader Engine
FREngine.IEngine engine;
...
// Aprire un file immagine
...
FREngine.IFRDocument frdoc;
// Creare DocumentProcessingParams e impostare i parametri
FREngine.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 mano
processingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;
// Utilizzare i parametri per l'elaborazione
frDoc.Process( processingParams );
...

Contrassegnare manualmente i blocchi

In alternativa, puoi impostare manualmente i parametri di riconoscimento per i blocchi con testo scritto a mano tramite la proprietà ITextBlock::RecognizerParams:
  1. Imposta la proprietà TextTypes dell’oggetto RecognizerParams su TT_Handwritten.
  2. [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.
    // Oggetto globale ABBYY FineReader Engine
    FREngine.IEngine engine;
    ...
    // Apri un file immagine
    ...
    // Ottieni l'oggetto Layout dalla pagina
    FREngine.ILayout layout = frPage.Layout;
    // Imposta l'area del blocco
    FREngine.IRegion region = engine.CreateRegion();
    region.AddRect( 491, 314, 2268, 404 );
    // Crea un nuovo blocco
    FREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );
    FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();
    // Specifica il tipo di testo
    textBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
    // Specifica il tipo di marcatura intorno alle lettere
    textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
    // Riconoscimento ed esportazione
    ...
    

    Vedi anche

    RecognizerParams Elenco delle lingue predefinite