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 o texto manuscrito de imagens, alcançando cerca de 90% de precisão para escrita à mão em inglês, apesar dos desafios inerentes de espaçamento irregular e variações de traços.

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

  1. Instale 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ê deve primeiro instalar o pacote IronOcr.Extensions.AdvancedScan. Por favor, note que o método ReadHandwriting atualmente suporta apenas inglês. Para OCR em múltiplos idiomas, use o método padrão Read() com os pacotes de idiomas 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 de OCR, depois carregue a imagem com LoadImage e finalmente 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);
Imports IronOcr
Imports System

' Instantiate OCR engine
Dim ocr As New IronTesseract()

' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")

' Perform OCR on the handwriting image
Dim result As OcrHandwritingResult = 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 alcançou uma pontuação de confiança de 90,6%, identificando corretamente a maioria do texto, incluindo a frase de abertura "Meu nome é 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;

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'.
        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);
    }
}
Imports IronOcr
Imports System
Imports System.Threading.Tasks

Public Class ReadHandwrittenImageAsync
    Public Async Function CodeAsync() As Task
        ' Instantiate OCR engine
        Dim ocr As New IronTesseract()

        ' Load handwriting image
        Dim inputHandWriting As New OcrInput()
        inputHandWriting.LoadImage("handwritten.png")

        ' Perform OCR using the async method with 'await'.
        Dim result As OcrHandwritingResult = 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)
    End Function
End Class
$vbLabelText   $csharpLabel

Você pode fornecer um parâmetro opcional timeoutMs 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:

:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image-4.cs
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}");
Imports IronOcr
Imports IronSoftware.Drawing

Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()

    ' Define a specific region for signature area
    Dim signatureRegion As New CropRectangle(x:=100, y:=500, width:=300, height:=100)
    ocrInput.LoadImage("form-with-signature.png", signatureRegion)

    Dim signatureResult = ocrTesseract.ReadHandwriting(ocrInput)
    Console.WriteLine($"Signature text: {signatureResult.Text}")

End Using
$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");
};
ocrTesseract.OcrProgress += Sub(sender, e)
    Console.WriteLine($"Processing: {e.ProgressPercent}% complete")
End Sub
$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, como 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íguas: A escrita à mão frequentemente utiliza traços simplificados ou apressados, criando formas ambíguas. Um e escrito rapidamente pode se assemelhar a um c, ou l e i conectados podem ser mal identificados.

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 uma extração OCR de baixa precisão 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.

O IronOCR pode ser integrado em aplicações existentes?

O IronOCR é projetado para ser facilmente integrado em aplicações existentes usando C#, permitindo que os desenvolvedores adicionem funcionalidades de OCR ao seu software com esforço mínimo.

Quais são os benefícios de usar o IronOCR para gestão de documentos?

Usar o IronOCR para gestão de documentos simplifica o fluxo de trabalho convertendo documentos escaneados em texto pesquisável e editável, reduzindo a necessidade de inserção manual de dados e melhorando a acessibilidade dos documentos.

Como o IronOCR pode melhorar a precisão dos dados?

O IronOCR melhora a precisão dos dados através de seus algoritmos avançados de reconhecimento e recursos de correção de imagem, assegurando que o processo de extração de texto seja tanto confiável quanto preciso.

Há uma avaliação gratuita disponível para o IronOCR?

Sim, o Iron Software oferece uma avaliação gratuita do IronOCR, permitindo que os usuários testem seus recursos e capacidades antes de tomar uma decisão de compra.

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 Baixar 6,136,090 | Versão: 2026.7 recém-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.