Pular para o conteúdo principal
Os exemplos em C# se aplicam somente ao FRE para Windows.
A tecnologia Intelligent Character Recognition (ICR) do ABBYY FineReader Engine permite reconhecer textos manuscritos e em letra de forma.
  • Nem todos os idiomas de reconhecimento estão disponíveis para o reconhecimento de textos manuscritos ou em letra de forma. Consulte a Lista de idiomas predefinidos.
  • Símbolos especiais, como * ^ ™ © ® № § ¡ ¿ ‰, não podem ser reconhecidos.
Durante a análise de layout, blocos com textos manuscritos e em letra de forma podem ser encontrados e marcados para reconhecimento com o tipo de texto manuscrito. Para detectar e reconhecer texto manuscrito ou em letra de forma, defina como TRUE a propriedade DetectHandwritten de PageAnalysisParams. Defina a propriedade SpeedQualityMode como SQM_Accurate, porque a escrita manuscrita só pode ser detectada no modo de análise precisa. Os tipos de texto manuscrito e em letra de forma são especificados pela mesma constante TextTypeEnum::TT_Handwritten. Os blocos de texto serão criados com a propriedade TextTypes do objeto ITextBlock::RecognizerParams definida como TT_Handwritten. Durante o reconhecimento, o texto será reconhecido como manuscrito se o idioma de reconhecimento oferecer suporte a texto manuscrito, ou como texto em letra de forma se oferecer suporte apenas a esse tipo de texto.
// Objeto global do ABBYY FineReader Engine
FREngine.IEngine engine;
...
// Abrir um arquivo de imagem
...
FREngine.IFRDocument frdoc;
// Criar DocumentProcessingParams e definir os parâmetros
FREngine.IDocumentProcessingParams processingParams = engine.CreateDocumentProcessingParams();
processingParams.PageProcessingParams.PageAnalysisParams.SpeedQualityMode = SQM_Accurate;
processingParams.PageProcessingParams.PageAnalysisParams.DetectHandwritten = true;
// Definir os tipos de texto para reconhecer texto normal e manuscrito
processingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;
// Usar os parâmetros no processamento
frDoc.Process( processingParams );
...

Marcando blocos manualmente

Como alternativa, você pode definir manualmente os parâmetros de reconhecimento de blocos com texto manuscrito por meio da propriedade ITextBlock::RecognizerParams:
  1. Defina a propriedade TextTypes do objeto RecognizerParams como TT_Handwritten.
  2. [Opcional] Letras de forma muitas vezes podem estar contidas em uma moldura, caixa etc. Nesse caso, defina o tipo de marcação ao redor das letras na propriedade FieldMarkingType do objeto RecognizerParams. Se cada letra for escrita em uma célula separada, use a propriedade CellsCount para definir o número de células de caracteres no bloco reconhecido.
    // Objeto global do ABBYY FineReader Engine
    FREngine.IEngine engine;
    ...
    // Abrir um arquivo de imagem
    ...
    // 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();
    // Especificar o tipo de texto
    textBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
    // Especificar o tipo de marcação ao redor das letras
    textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
    // Reconhecimento e exportação
    ...
    

    Veja também

    RecognizerParams Lista de idiomas predefinidos