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.
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.
Código C#
// Objeto global do ABBYY FineReader EngineFREngine.IEngine engine;...// Abrir um arquivo de imagem...FREngine.IFRDocument frdoc;// Criar DocumentProcessingParams e definir os parâmetrosFREngine.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 manuscritoprocessingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;// Usar os parâmetros no processamentofrDoc.Process( processingParams );...
Como alternativa, você pode definir manualmente os parâmetros de reconhecimento de blocos com texto manuscrito por meio da propriedade ITextBlock::RecognizerParams:
[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.
Código C#
// Objeto global do ABBYY FineReader EngineFREngine.IEngine engine;...// Abrir um arquivo de imagem...// Obter o objeto Layout da páginaFREngine.ILayout layout = frPage.Layout;// Definir a região do blocoFREngine.IRegion region = engine.CreateRegion();region.AddRect( 491, 314, 2268, 404 );// Criar um novo blocoFREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();// Especificar o tipo de textotextBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;// Especificar o tipo de marcação ao redor das letrastextBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;// Reconhecimento e exportação...