Como ler imagens de escrita à mão com o IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR fornece um método especializado ReadHandwriting que digitaliza de forma confiável texto manuscrito a partir de imagens, alcançando cerca de 90% de precisão para manuscritos em inglês, apesar dos desafios inerentes ao espaçamento irregular e variações de traço.

Início rápido: Leia imagens de escrita à mão com o IronOCR

  1. Instale o IronOCR e o pacote IronOcr.Extensions.AdvancedScan.
  2. Crie uma instância IronTesseract
  3. Carregue sua imagem manuscrita usando LoadImage()
  4. Chame o método ReadHandwriting()
  5. Acesse o texto extraído do OcrResult
  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronOcr
  2. Copie e execute este trecho de código.

    using IronOcr;
    
    var ocrTesseract = new IronTesseract();
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage("handwriting.png");
    var ocrResult = ocrTesseract.ReadHandwriting(ocrInput);
    Console.WriteLine(ocrResult.Text);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Ler automaticamente textos manuscritos a partir de imagens é extremamente difícil porque as pessoas escrevem de maneiras diferentes. Essa enorme inconsistência torna o OCR um desafio. Documentos cruciais, como registros antigos, fichas de cadastro de pacientes e pesquisas de satisfação do cliente, ainda exigem processamento manual, o que leva a fluxos de trabalho propensos a erros e compromete a integridade dos dados.

O IronOCR resolve esse problema introduzindo um método especializado para compreender e digitalizar imagens de escrita à mão de forma confiável. Baseado no poderoso mecanismo Tesseract 5 , o IronOCR combina processamento de imagem avançado com aprendizado de máquina para oferecer recursos de reconhecimento de escrita à mão líderes do setor.

Este guia explica passo a passo como implementar o OCR de escrita à mão em seus aplicativos .NET. Seja para digitalizar documentos históricos, processar formulários médicos ou converter anotações manuscritas, você aprenderá como obter resultados confiáveis ​​com o IronOCR.

Comece a usar o IronOCR


Para usar esta função, você precisa primeiro instalar o pacote IronOcr.Extensions.AdvancedScan . Observe que o método ReadHandwriting atualmente suporta apenas o inglês. Para OCR em vários idiomas, use o método padrão Read() com os pacotes de idioma apropriados.

Como faço para ler imagens de escrita à mão com o IronOCR?

Ler uma imagem de escrita à mão com o IronOCR é muito simples. Primeiro instancie o motor OCR, depois carregue a imagem com LoadImage e, por fim, use o método especializado ReadHandwriting projetado para reconhecimento de escrita à mão. Imprima o texto extraído para verificar a precisão e o conteúdo.

Antes do processamento, considere aplicar filtros de correção de qualidade de imagem para melhorar a legibilidade. Esses filtros podem melhorar significativamente a precisão do reconhecimento, especialmente para documentos digitalizados com baixo contraste ou resolução.

Qual formato de entrada devo usar?

Exemplo de imagem de entrada de escrita à mão mostrando texto cursivo para processamento de OCR.
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");

// Perform OCR on the handwriting image
OcrHandwritingResult result = ocr.ReadHandwriting(inputHandWriting);

// Output the recognized handwritten text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
$vbLabelText   $csharpLabel

Que resultados posso esperar?

Resultados da saída do OCR mostrando o texto manuscrito extraído com a pontuação de confiança.

O método ReadHandwriting obteve uma pontuação de confiança de 90.6%, identificando corretamente a maioria dos textos, incluindo a frase de abertura "My name is Erin Fish."

Este excelente resultado demonstra a capacidade do IronOCR com escritas manuscritas complexas. Embora o mecanismo de busca tenha tido dificuldades com espaçamento e letras conectadas, ele conseguiu extrair a mensagem principal. Isso demonstra que o IronOCR lida com textos complexos e não padronizados de forma eficaz.

Para quem é iniciante em OCR, comece com nosso tutorial simples de OCR para entender os conceitos básicos antes de se aventurar no reconhecimento de escrita à mão.

Como faço para usar a versão assíncrona?

IronOCR suporta uma versão assíncrona: ReadHandwritingAsync. Isso é útil ao lidar com código assíncrono que requer a busca de imagens de entrada antes do processamento. A documentação de suporte assíncrono fornece orientações abrangentes sobre a implementação de operações OCR assíncronas.

Usando a mesma entrada, veja como usar o método assíncrono:

:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image-async.cs
using IronOcr;
using System;
using System.Threading.Tasks;

using System;
using System.Threading.Tasks;
#endregion

public class read_handwritten_image_async
{
    public async Task codeAsync()
    {
        // Instantiate OCR engine
        var ocr = new IronTesseract();

        // Load handwriting image
        var inputHandWriting = new OcrInput();
        inputHandWriting.LoadImage("handwritten.png");

        // Perform OCR using the async method with 'await'.
        // The compiler automatically infers this top-level code block as an 'async Task Main()' method.
        OcrHandwritingResult result = await ocr.ReadHandwritingAsync(inputHandWriting);

        // Output the recognized handwriting text
        Console.WriteLine(result.Text);
        // Output the confidence score of the OCR result
        Console.WriteLine(result.Confidence);
    
$vbLabelText   $csharpLabel

Você pode fornecer um parâmetro timeoutMs opcional para especificar milissegundos antes do cancelamento automático. O valor padrão é -1, significando sem limite de tempo—a operação continua até a conclusão.

Técnicas avançadas de processamento

Para cenários complexos de reconhecimento de escrita manual, considere estas técnicas avançadas:

OCR específico por região : Ao trabalhar com formulários ou documentos estruturados, use o OCR baseado em região para se concentrar em áreas específicas que contenham texto manuscrito. Essa abordagem melhora a precisão ao limitar a área de processamento:

using IronOcr;
using IronSoftware.Drawing;

var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();

// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);

var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
using IronOcr;
using IronSoftware.Drawing;

var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();

// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);

var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
$vbLabelText   $csharpLabel

Acompanhamento do progresso : Para o processamento em lote de vários documentos manuscritos, implemente o acompanhamento do progresso para monitorar a operação de OCR:

ocrTesseract.OcrProgress += (sender, e) => 
{
    Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += (sender, e) => 
{
    Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
$vbLabelText   $csharpLabel

Quais desafios devo ter em mente?

Embora o IronOCR alcance um alto nível de confiança na retenção da estrutura geral e do texto, o OCR ainda apresenta dificuldades com a escrita à mão, resultando em erros localizados. Os desafios comuns exigem a verificação dos resultados extraídos:

Espaçamento irregular : O texto impresso apresenta espaçamento uniforme entre as letras. O espaçamento entre os traços e as conexões entre as letras na caligrafia varia muito. Isso causa segmentação incorreta de caracteres, conforme mostrado quando ununiformed se divide em caracteres individuais (u n u n i f o c m e d) em vez de uma única palavra.

Variação dos traços : Cada pessoa tem uma caligrafia única, e cada indivíduo escreve a mesma letra de forma diferente. As conexões e os padrões entre as letras variam significativamente. Isso impede um modelo "tamanho único", já que o mecanismo precisa lidar com alta variabilidade na inclinação, pressão e forma do traço, tornando a correspondência de padrões menos confiável do que com fontes padronizadas.

Formas de Caracteres Ambíguos: A caligrafia muitas vezes usa traços simplificados ou apressados, criando formas ambíguas. Um e rapidamente escrito pode se assemelhar a um c, ou l e i conectados podem ser identificados erroneamente.

Problemas de qualidade e resolução : A má qualidade da digitalização, a baixa resolução ou a tinta desbotada afetam significativamente a precisão do reconhecimento. Ao se deparar com esses problemas, consulte nosso guia geral de solução de problemas para obter soluções.

Ao usar esse método, verifique se a saída corresponde à entrada pretendida, prestando atenção especial a palavras muito próximas ou mal formadas. Considere implementar lógica de pós-processamento para lidar com erros de reconhecimento comuns específicos do seu caso de uso.

Aviso O método ReadHandwriting só pode alcançar baixa precisão na extração OCR quando se trata de escritas cursivas.

Perguntas frequentes

Qual o nível de precisão que posso esperar ao extrair texto manuscrito de imagens?

O método ReadHandwriting do IronOCR atinge uma precisão de cerca de 90% no reconhecimento de escrita à mão em inglês, apesar dos desafios inerentes ao espaçamento irregular e às variações de traços que tornam o OCR de escrita à mão particularmente difícil.

Quais idiomas são suportados para reconhecimento de escrita à mão?

O método ReadHandwriting do IronOCR atualmente suporta apenas inglês. Para OCR em vários idiomas, você precisará usar o método Read() padrão com os pacotes de idiomas apropriados em vez do método especializado de reconhecimento de escrita à mão.

Que pacote adicional preciso instalar para o OCR de escrita à mão?

Para usar a funcionalidade de reconhecimento de escrita à mão no IronOCR, você precisa instalar o pacote IronOcr.Extensions.AdvancedScan além da biblioteca principal do IronOCR.

Como posso implementar o reconhecimento básico de escrita à mão em C#?

Crie uma instância do IronTesseract, carregue a imagem da sua escrita à mão usando LoadImage(), chame o método ReadHandwriting() e acesse o texto extraído do OcrResult. O IronOCR lida automaticamente com o processamento complexo de imagens e o aprendizado de máquina.

Que tipos de documentos manuscritos podem ser processados?

O IronOCR consegue processar diversos documentos manuscritos, incluindo registros históricos, fichas de cadastro de pacientes, pesquisas de satisfação do cliente e anotações manuscritas. A biblioteca foi projetada para lidar com as inconsistências da caligrafia humana que tornam o processamento manual propenso a erros.

Que tecnologia possibilita o reconhecimento de escrita manual?

O reconhecimento de escrita à mão do IronOCR é baseado no poderoso mecanismo Tesseract 5, que combina processamento de imagem avançado com algoritmos de aprendizado de máquina para oferecer recursos de reconhecimento de escrita à mão líderes do setor.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 5,525,971 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.