Como realizar OCR no .NET Maui | IronOCR

OCR .NET MAUI Usando IronOCR

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

Introdução

A Microsoft lançou o .NET MAUI (Interface de Aplicativo Multi-plataforma), que é um framework para construir aplicações multiplataforma com o .NET Framework. Ele permite que você escreva código que roda no Android, iOS e Windows usando a mesma base de código, economizando tempo, recursos e esforço. .NET MAUI é de código aberto. Você pode obter o código-fonte do projeto .NET MAUI com exemplos no GitHub.

Neste Guia de Como Fazer, aprenderemos como criar um aplicativo de processamento OCR no .NET MAUI usando a biblioteca IronOCR com exemplos.

IronOCR: Biblioteca OCR for .NET

IronOCR é uma biblioteca OCR NuGet for .NET que permite aos desenvolvedores integrar facilmente a funcionalidade de Reconhecimento Óptico de Caracteres (OCR) em seus projetos. Usando IronOCR, documentos PDF podem ser digitalizados e convertidos em texto/dados pesquisáveis e editáveis sem qualquer perda de qualidade de dados. Isso facilita para os usuários encontrarem as informações de que precisam em documentos PDF e fazer alterações ou correções, se necessário.

IronOCR é a versão mais avançada dos binários Tesseract disponíveis para qualquer plataforma. Ele oferece aumento de velocidade, precisão e uma DLL/API nativa que suporta todas as versões do Tesseract (desde o Tesseract 3 até o Tesseract 5) com uma instalação/download fácil.

O suporte a idiomas do IronOCR é extenso, com 125 idiomas internacionais disponíveis para os usuários. O idioma inglês é instalado por padrão com a ferramenta/DLL. No entanto, você pode adicionar mais idiomas facilmente instalando-os pelo NuGet ou baixando DLLs.

Comparação com Tesseract

O IronOCR é especificamente projetado para desenvolvedores C# e se integra perfeitamente com aplicações .NET. Em contrapartida, o Tesseract é uma biblioteca OCR genérica que requer que os desenvolvedores escrevam seus próprios wrappers para usá-lo com C#. Além disso, o IronOCR oferece precisão e velocidade superiores em comparação com outras bibliotecas, graças aos seus inovadores algoritmos de inteligência artificial.

IronOCR vem com documentação abrangente e suporte técnico, facilitando para desenvolvedores iniciantes se prepararem e rodarem rapidamente.

IronOCR é muito mais preciso que o Tesseract. Na verdade, ele tem uma taxa de precisão de mais de 99%, enquanto a taxa de precisão do Tesseract é de apenas cerca de 70,2% a 92,9%. Obtenha mais informações e suporte sobre a comparação entre IronOCR e Tesseract neste vídeo do YouTube.

Passos para Criar um aplicativo OCR MAUI

Siga estes passos para criar um aplicativo OCR no framework .NET MAUI usando IronOCR.

Pré-requisitos

Para criar um aplicativo OCR no .NET MAUI, estes são os pré-requisitos:

  1. Visual Studio 2022 (Versão mais recente)
  2. .NET 6 ou 7
  3. Pacotes MAUI instalados no Visual Studio
  4. Um projeto .NET MAUI rodando no Visual Studio

Instalar IronOCR

O primeiro passo é instalar a biblioteca IronOCR usando o Console do Gerenciador de Pacotes NuGet. Abra o Console do Gerenciador de Pacotes NuGet clicando com o botão direito no explorador de soluções e execute o seguinte comando para instalar a biblioteca IronOCR:

Install-Package IronOcr

Design do Frontend

Vamos desenhar o frontend da aplicação nesta seção. Abra o arquivo MainPage.xaml.

.NET MAUI OCR Tutorial Using IronOCR - Figure 1: MainPage.xaml

MainPage.xaml

Designamos um botão que nos ajudará a selecionar a imagem ou documento PDF para OCR. A propriedade Clicked do botão está configurada para executar a função IOCR que definiremos na próxima seção.

<Button
    x:Name="OCR"
    Text="Click to OCR"
    Clicked="IOCR"
    HorizontalOptions="Center" />
<Button
    x:Name="OCR"
    Text="Click to OCR"
    Clicked="IOCR"
    HorizontalOptions="Center" />
XML

Aqui, nós criamos um elemento Image com o nome OCRImage. Esta caixa de imagem mostrará o arquivo selecionado.

<Image
    x:Name="OCRImage"
    SemanticProperties.Description="Selected Image"
    HeightRequest="300"
    HorizontalOptions="Center" />
<Image
    x:Name="OCRImage"
    SemanticProperties.Description="Selected Image"
    HeightRequest="300"
    HorizontalOptions="Center" />
XML

Em seguida, criamos um controle Editor. Ele será usado para mostrar o texto extraído da imagem ou documento PDF.

<Editor
    x:Name="outputText"
    HorizontalOptions="Center"
    WidthRequest="600"
    HeightRequest="300" />
<Editor
    x:Name="outputText"
    HorizontalOptions="Center"
    WidthRequest="600"
    HeightRequest="300" />
XML

Aqui está a marcação completa da Interface de Usuário XAML.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronOCR_MAUI_Test.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Button
                x:Name="OCR"
                Text="Click to OCR"
                Clicked="IOCR"
                HorizontalOptions="Center" />
            <Image
                x:Name="OCRImage"
                SemanticProperties.Description="Selected Image"
                HeightRequest="300"
                HorizontalOptions="Center" />

            <Editor
                x:Name="outputText"
                HorizontalOptions="Center"
                WidthRequest="600"
                HeightRequest="300" />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronOCR_MAUI_Test.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Button
                x:Name="OCR"
                Text="Click to OCR"
                Clicked="IOCR"
                HorizontalOptions="Center" />
            <Image
                x:Name="OCRImage"
                SemanticProperties.Description="Selected Image"
                HeightRequest="300"
                HorizontalOptions="Center" />

            <Editor
                x:Name="outputText"
                HorizontalOptions="Center"
                WidthRequest="600"
                HeightRequest="300" />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Agora, é hora de escrever o código para a funcionalidade OCR.

Código para OCR usando IronOCR

Abra o arquivo de classe MainPage.xaml.cs e escreva a seguinte função:

.NET MAUI OCR Tutorial Using IronOCR - Figure 2: MainPage.xaml.cs

MainPage.xaml.cs

private async void IOCR(object sender, EventArgs e)
{
    // Prompt user to select an image using FilePicker
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image
    var path = images.FullPath.ToString();

    // Display the selected image in the Image control
    OCRImage.Source = path;

    // Create an IronTesseract object to perform OCR
    var ocr = new IronTesseract();

    // Perform OCR and extract text from the selected image
    using (var input = new OcrInput())
    {
        input.AddImage(path); // Add image to the OCR input
        OcrResult result = ocr.Read(input); // Perform OCR
        string text = result.Text; // Extract text

        // Display extracted text in the Editor control
        outputText.Text = text; 
    }
}
private async void IOCR(object sender, EventArgs e)
{
    // Prompt user to select an image using FilePicker
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image
    var path = images.FullPath.ToString();

    // Display the selected image in the Image control
    OCRImage.Source = path;

    // Create an IronTesseract object to perform OCR
    var ocr = new IronTesseract();

    // Perform OCR and extract text from the selected image
    using (var input = new OcrInput())
    {
        input.AddImage(path); // Add image to the OCR input
        OcrResult result = ocr.Read(input); // Perform OCR
        string text = result.Text; // Extract text

        // Display extracted text in the Editor control
        outputText.Text = text; 
    }
}
$vbLabelText   $csharpLabel

Vamos decompor o código acima:

  • O código usa o FilePicker para permitir que o usuário selecione um arquivo de imagem do dispositivo. O seletor de arquivos está configurado para permitir apenas imagens.
var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
$vbLabelText   $csharpLabel
  • O controle Image está configurado para exibir a imagem selecionada usando seu caminho de arquivo.
OCRImage.Source = path;
OCRImage.Source = path;
$vbLabelText   $csharpLabel
  • Um objeto IronTesseract é criado para realizar OCR. A imagem selecionada é adicionada a um objeto OcrInput. O método Read é chamado para extrair texto da imagem, que então é exibido no controle Editor.
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddImage(path);
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    outputText.Text = text; 
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddImage(path);
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    outputText.Text = text; 
}
$vbLabelText   $csharpLabel

Saída

Depois de rodar o projeto, a seguinte interface de usuário aparece. Quando você clica no botão, será solicitado a selecionar uma imagem/PDF de qualquer local.

.NET MAUI OCR Tutorial Using IronOCR - Figure 3: Saída OCR

Saída OCR

Depois de selecionar a imagem, IronOCR processa a imagem e mostra as palavras reconhecidas no controle Editor. Você pode copiar o texto do controle Editor.

.NET MAUI OCR Tutorial Using IronOCR - Figure 4: Imagem OCR

Imagem OCR

Dos resultados, fica claro que o IronOCR realiza um trabalho maravilhoso ao processar imagens complexas com padrões, mostrando resultados precisos. IronOCR é capaz de detectar pequenos detalhes e selecionar as letras exatas necessárias usando seus modelos pré-treinados.

<{i:(Running the project in release mode with debugging attached might cause issues. Em tais casos, você pode publicar o projeto como um aplicativo .NET MAUI não empacotado, conforme mostrado no link abaixo, para garantir que o aplicativo funcione corretamente.

Conclusão

Para leitura adicional, consulte este tutorial que fornece informações adicionais sobre como usar o IronOCR para ler texto de imagens.

IronOCR é gratuito para propósitos de desenvolvimento. Você pode comprá-lo por um preço muito baixo a partir de apenas $799. Confira o plano de preços aqui.

Perguntas frequentes

Para que serve o .NET MAUI no desenvolvimento de aplicativos?

O .NET MAUI (Multi-platform App UI) é usado para criar aplicativos multiplataforma com uma única base de código, permitindo que os desenvolvedores criem aplicativos para as plataformas Android, iOS e Windows.

Como os desenvolvedores podem realizar OCR em um aplicativo .NET MAUI?

Os desenvolvedores podem realizar OCR em um aplicativo .NET MAUI integrando o IronOCR, uma biblioteca OCR for .NET. O IronOCR permite a conversão de imagens e PDFs em texto pesquisável e editável.

Quais são os passos para configurar o IronOCR em um projeto .NET MAUI?

Para configurar o IronOCR em um projeto .NET MAUI, instale a biblioteca IronOCR via NuGet, configure seu frontend no Visual Studio e implemente o código C# necessário para realizar o OCR usando o objeto IronTesseract.

Qual a precisão do IronOCR no processamento de texto?

O IronOCR oferece uma alta taxa de precisão, superior a 99%, no processamento de texto, tornando-o mais confiável do que outras soluções de OCR, como o Tesseract, devido aos seus algoritmos avançados de IA.

O IronOCR consegue lidar com vários idiomas?

Sim, o IronOCR suporta 125 idiomas internacionais, com o inglês instalado por padrão. Idiomas adicionais podem ser adicionados via NuGet ou baixando DLLs específicas para cada idioma.

Como selecionar um arquivo de imagem para OCR em um aplicativo .NET MAUI?

Em um aplicativo .NET MAUI, você pode selecionar um arquivo de imagem para OCR usando a classe FilePicker , que permite aos usuários escolher imagens de seus dispositivos para extração de texto.

Qual é a função do controle Editor na exibição dos resultados de OCR?

O controle Editor em um aplicativo .NET MAUI é usado para exibir o texto extraído de imagens processadas pelo IronOCR, fornecendo uma interface para os usuários visualizarem os resultados do OCR.

Existe algum custo associado ao uso do IronOCR para desenvolvimento?

O IronOCR pode ser usado gratuitamente para fins de desenvolvimento. No entanto, é necessária uma licença para uso em produção, que pode ser obtida a um preço competitivo.

O que torna o IronOCR a escolha preferida dos desenvolvedores C#?

O IronOCR é a escolha preferida dos desenvolvedores C# devido à sua integração perfeita com aplicativos .NET, alta precisão, velocidade e suporte a vários idiomas, o que o torna superior a muitas outras bibliotecas de OCR.

Como os desenvolvedores podem aprimorar a funcionalidade de seu aplicativo OCR .NET MAUI?

Os desenvolvedores podem aprimorar seu aplicativo .NET MAUI OCR explorando os recursos adicionais fornecidos pelo IronOCR, utilizando sua documentação abrangente e suporte para implementar recursos avançados.

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
Analisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente de Programa Principal - Equipe da Comunidade .NET
Jeff também é Gerente de Programa Principal das equipes do .NET e do Visual Studio. Ele é o produtor executivo da série de conferências virtuais .NET Conf e apresenta o "Fritz and Friends", uma transmissão ao vivo para desenvolvedores que vai ao ar duas vezes por semana, onde ele conversa sobre tecnologia e escreve código junto com os espectadores. Jeff cria workshops, apresentações e planeja conteúdo para os maiores eventos de desenvolvedores da Microsoft, incluindo o Microsoft Build, o Microsoft Ignite, a .NET Conf e o Microsoft MVP Summit.
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.