Pular para o conteúdo principal
No momento, o ABBYY FineReader Engine não oferece suporte a ICR para árabe. No entanto, é possível reconhecer especificamente dígitos arábicos, e este artigo descreve as etapas necessárias. Além do procedimento descrito em Reconhecendo textos manuscritos, para reconhecer dígitos arábicos, você precisa criar um idioma personalizado com um alfabeto composto apenas pelos 10 símbolos numéricos e defini-lo como idioma de reconhecimento para cada bloco com dígitos. Portanto, para reconhecer dígitos arábicos manuscritos em letra de forma, faça o seguinte:
  1. Crie um novo idioma de texto usando o método CreateTextLanguage do objeto LanguageDatabase.
  2. Usando a propriedade LetterSet do objeto BaseLanguage dentro do objeto TextLanguage, defina o alfabeto do idioma com os seguintes caracteres: ٠١٢٣٤٥٦٧٨٩.
  3. Para cada bloco que contenha dígitos arábicos manuscritos em letra de forma, especifique os parâmetros de reconhecimento por meio da propriedade ITextBlock::RecognizerParams:
    • Defina a propriedade TextLanguage do objeto RecognizerParams como o idioma criado na etapa anterior.
    • Defina a propriedade TextTypes do objeto RecognizerParams como TT_Handwritten.
    • Se os dígitos estiverem dentro de uma moldura, caixa etc., configure o tipo de marcação ao redor das letras na propriedade FieldMarkingType do objeto RecognizerParams. Se cada dígito estiver escrito em uma célula separada, use também a propriedade CellsCount para definir o número de células de caracteres no bloco.

Exemplos para Windows

// Objeto global do ABBYY FineReader Engine
FREngine::IEnginePtr Engine;
...
// Abrir um arquivo de imagem
...
// Criar um idioma personalizado
FREngine::ILanguageDatabasePtr pLanguageDatabase = Engine->CreateLanguageDatabase();
FREngine::ITextLanguagePtr pTextLanguage = pLanguageDatabase->CreateTextLanguage();
FREngine::IBaseLanguagesPtr pBaseLanguages = pTextLanguage->BaseLanguages;
FREngine::IBaseLanguagePtr pBaseLanguage = pBaseLanguages->AddNew();
// Definir o alfabeto
pBaseLanguage->put_LetterSet( FREngine::BLLS_Alphabet, L"٠١٢٣٤٥٦٧٨٩" );
// Obter o objeto Layout da página
FREngine::ILayoutPtr layout = frPage->get_Layout();
// Definir a região do bloco
FREngine::IRegionPtr pRegion = Engine->CreateRegion();
pRegion->AddRect( 491, 314, 2268, 404 );
// Criar um novo bloco
FREngine::IBlockPtr newBlock = layout->Blocks->AddNew( FREngine::BT_Text, pRegion, 0 );
FREngine::ITextBlockPtr textBlock = newBlock->GetAsTextBlock();
// Definir o idioma personalizado
textBlock->RecognizerParams->TextLanguage = pTextLanguage;
// Especificar o tipo de texto
textBlock->RecognizerParams->TextTypes = FREngine::TT_Handwritten;
// Especificar o tipo de marcação em torno das letras
textBlock->RecognizerParams->FieldMarkingType = FREngine::FMT_SimpleText;
// Reconhecimento e exportação
...
// Objeto global do ABBYY FineReader Engine
FREngine.IEngine engine;
...
// Abrir um arquivo de imagem
...
// Criar um idioma personalizado
FREngine.ILanguageDatabase languageDatabase = engine.CreateLanguageDatabase();
FREngine.ITextLanguage textLanguage = languageDatabase.CreateTextLanguage();
FREngine.IBaseLanguages baseLanguages = textLanguage.BaseLanguages;
FREngine.IBaseLanguage baseLanguage = baseLanguages.AddNew();
// Definir o alfabeto
baseLanguage.set_LetterSet( FREngine.BaseLanguageLetterSetEnum.BLLS_Alphabet, "٠١٢٣٤٥٦٧٨٩" );
// Obter o objeto Layout da página
FREngine.ILayout layout = frPage.Layout;
// Definir a região do bloco
FREngine.IRegion region = engine.CreateRegion();
region.AddRect( 491, 314, 2268, 404 );
// Criar um novo bloco
FREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );
FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();
// Definir o idioma personalizado
textBlock.RecognizerParams.TextLanguage = textLanguage;
// Especificar o tipo de texto
textBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
// Especificar o tipo de marcação em torno das letras
textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
// Reconhecimento e exportação
...

Consulte também

RecognizerParams Reconhecendo textos manuscritos Trabalhando com idiomas