Vai al contenuto principale
ABBYY FineReader Engine attualmente non supporta l’ICR arabo. Tuttavia, è possibile riconoscere in modo specifico le cifre arabe e questo articolo descrive i passaggi necessari. Oltre alla procedura descritta in Riconoscimento del testo scritto a mano, per il riconoscimento delle cifre arabe è necessario creare una lingua personalizzata con un alfabeto composto solo da 10 cifre e impostarla come lingua di riconoscimento per ogni blocco contenente cifre. Pertanto, per riconoscere cifre arabe scritte a mano in stampatello, procedi come segue:
  1. Crea una nuova lingua di testo usando il metodo CreateTextLanguage dell’oggetto LanguageDatabase.
  2. Usando la proprietà LetterSet dell’oggetto BaseLanguage all’interno dell’oggetto TextLanguage, imposta l’alfabeto della lingua in modo che contenga i seguenti caratteri: ٠١٢٣٤٥٦٧٨٩.
  3. Per ogni blocco contenente cifre arabe scritte a mano in stampatello, specifica i parametri di riconoscimento tramite la proprietà ITextBlock::RecognizerParams:
    • Imposta la proprietà TextLanguage dell’oggetto RecognizerParams sulla lingua creata nel passaggio precedente.
    • Imposta la proprietà TextTypes dell’oggetto RecognizerParams su TT_Handwritten.
    • Se le cifre sono racchiuse in una cornice, una casella e così via, imposta il tipo di marcatura intorno ai caratteri nella proprietà FieldMarkingType dell’oggetto RecognizerParams. Se ogni cifra è scritta in una cella separata, usa anche la proprietà CellsCount per impostare il numero di celle carattere nel blocco.

Esempi Windows

// Oggetto globale di ABBYY FineReader Engine
FREngine::IEnginePtr Engine;
...
// Aprire un file immagine
...
// Creare una lingua personalizzata
FREngine::ILanguageDatabasePtr pLanguageDatabase = Engine->CreateLanguageDatabase();
FREngine::ITextLanguagePtr pTextLanguage = pLanguageDatabase->CreateTextLanguage();
FREngine::IBaseLanguagesPtr pBaseLanguages = pTextLanguage->BaseLanguages;
FREngine::IBaseLanguagePtr pBaseLanguage = pBaseLanguages->AddNew();
// Impostare l'alfabeto
pBaseLanguage->put_LetterSet( FREngine::BLLS_Alphabet, L"٠١٢٣٤٥٦٧٨٩" );
// Ottenere l'oggetto Layout dalla pagina
FREngine::ILayoutPtr layout = frPage->get_Layout();
// Impostare la regione del blocco
FREngine::IRegionPtr pRegion = Engine->CreateRegion();
pRegion->AddRect( 491, 314, 2268, 404 );
// Creare un nuovo blocco
FREngine::IBlockPtr newBlock = layout->Blocks->AddNew( FREngine::BT_Text, pRegion, 0 );
FREngine::ITextBlockPtr textBlock = newBlock->GetAsTextBlock();
// Impostare la lingua personalizzata
textBlock->RecognizerParams->TextLanguage = pTextLanguage;
// Specificare il tipo di testo
textBlock->RecognizerParams->TextTypes = FREngine::TT_Handwritten;
// Specificare il tipo di marcatura attorno alle lettere
textBlock->RecognizerParams->FieldMarkingType = FREngine::FMT_SimpleText;
// Riconoscimento ed esportazione
...
// Oggetto globale di ABBYY FineReader Engine
FREngine.IEngine engine;
...
// Aprire un file immagine
...
// Creare una lingua personalizzata
FREngine.ILanguageDatabase languageDatabase = engine.CreateLanguageDatabase();
FREngine.ITextLanguage textLanguage = languageDatabase.CreateTextLanguage();
FREngine.IBaseLanguages baseLanguages = textLanguage.BaseLanguages;
FREngine.IBaseLanguage baseLanguage = baseLanguages.AddNew();
// Impostare l'alfabeto
baseLanguage.set_LetterSet( FREngine.BaseLanguageLetterSetEnum.BLLS_Alphabet, "٠١٢٣٤٥٦٧٨٩" );
// Ottenere l'oggetto Layout dalla pagina
FREngine.ILayout layout = frPage.Layout;
// Impostare la regione del blocco
FREngine.IRegion region = engine.CreateRegion();
region.AddRect( 491, 314, 2268, 404 );
// Creare un nuovo blocco
FREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );
FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();
// Impostare la lingua personalizzata
textBlock.RecognizerParams.TextLanguage = textLanguage;
// Specificare il tipo di testo
textBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
// Specificare il tipo di marcatura attorno alle lettere
textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
// Riconoscimento ed esportazione
...

Vedi anche

RecognizerParams Riconoscimento del testo scritto a mano Lavorare con le lingue