Use this file to discover all available pages before exploring further.
ABBYY FineReader Engine ne prend actuellement pas en charge l’ICR arabe. Il est toutefois possible de reconnaître spécifiquement les chiffres arabes, et cet article décrit les étapes nécessaires.En plus de la procédure décrite dans Reconnaissance de textes manuscrits, pour reconnaître des chiffres arabes, vous devez créer une langue personnalisée dont l’alphabet se compose uniquement des 10 chiffres, puis la définir comme langue de reconnaissance pour chaque bloc contenant des chiffres.Pour reconnaître des chiffres arabes écrits à la main, procédez comme suit :
À l’aide de la propriété LetterSet de l’objet BaseLanguage au sein de l’objet TextLanguage, définissez l’alphabet de la langue pour qu’il contienne les caractères suivants : ٠١٢٣٤٥٦٧٨٩.
Pour chaque bloc contenant des chiffres arabes écrits à la main, spécifiez les paramètres de reconnaissance via la propriété ITextBlock::RecognizerParams :
Définissez la propriété TextTypes de l’objet RecognizerParams sur TT_Handwritten.
Si les chiffres sont entourés d’un cadre, d’une case, etc., configurez le type de marquage autour des caractères dans la propriété FieldMarkingType de l’objet RecognizerParams. Si chaque chiffre est écrit dans une cellule distincte, utilisez également la propriété CellsCount pour définir le nombre de cellules de caractères du bloc.
// Objet global ABBYY FineReader EngineFREngine::IEnginePtr Engine;...// Ouvrir un fichier image...// Créer une langue personnaliséeFREngine::ILanguageDatabasePtr pLanguageDatabase = Engine->CreateLanguageDatabase();FREngine::ITextLanguagePtr pTextLanguage = pLanguageDatabase->CreateTextLanguage();FREngine::IBaseLanguagesPtr pBaseLanguages = pTextLanguage->BaseLanguages;FREngine::IBaseLanguagePtr pBaseLanguage = pBaseLanguages->AddNew();// Définir l'alphabetpBaseLanguage->put_LetterSet( FREngine::BLLS_Alphabet, L"٠١٢٣٤٥٦٧٨٩" );// Obtenir l'objet Layout de la pageFREngine::ILayoutPtr layout = frPage->get_Layout();// Définir la région du blocFREngine::IRegionPtr pRegion = Engine->CreateRegion();pRegion->AddRect( 491, 314, 2268, 404 );// Créer un blocFREngine::IBlockPtr newBlock = layout->Blocks->AddNew( FREngine::BT_Text, pRegion, 0 );FREngine::ITextBlockPtr textBlock = newBlock->GetAsTextBlock();// Définir la langue personnaliséetextBlock->RecognizerParams->TextLanguage = pTextLanguage;// Indiquer le type de textetextBlock->RecognizerParams->TextTypes = FREngine::TT_Handwritten;// Indiquer le type de marquage autour des lettrestextBlock->RecognizerParams->FieldMarkingType = FREngine::FMT_SimpleText;// Reconnaissance et exportation...
Code C#
// Objet global ABBYY FineReader EngineFREngine.IEngine engine;...// Ouvrir un fichier image...// Créer une langue personnaliséeFREngine.ILanguageDatabase languageDatabase = engine.CreateLanguageDatabase();FREngine.ITextLanguage textLanguage = languageDatabase.CreateTextLanguage();FREngine.IBaseLanguages baseLanguages = textLanguage.BaseLanguages;FREngine.IBaseLanguage baseLanguage = baseLanguages.AddNew();// Définir l'alphabetbaseLanguage.set_LetterSet( FREngine.BaseLanguageLetterSetEnum.BLLS_Alphabet, "٠١٢٣٤٥٦٧٨٩" );// Obtenir l'objet Layout de la pageFREngine.ILayout layout = frPage.Layout;// Définir la région du blocFREngine.IRegion region = engine.CreateRegion();region.AddRect( 491, 314, 2268, 404 );// Créer un blocFREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();// Définir la langue personnaliséetextBlock.RecognizerParams.TextLanguage = textLanguage;// Indiquer le type de textetextBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;// Indiquer le type de marquage autour des lettrestextBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;// Reconnaissance et exportation...