.NET MAUI OCR Using IronOCR

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

Introduction

Microsoft a publié .NET MAUI (Multi-platform App UI), qui est un cadre pour la création d'applications multiplateformes avec le .NET Framework. Il vous permet d'écrire du code qui fonctionne sur Android, iOS et Windows en utilisant la même base de code, ce qui vous permet d'économiser du temps, des ressources et des efforts. .NET MAUI est un logiciel libre. Vous pouvez obtenir le code source du projet .NET MAUI avec des exemples sur GitHub.

Dans ce guide pratique, nous allons apprendre à créer une application de processeur OCR sur .NET MAUI à l'aide de la bibliothèque IronOCR for NET, avec des exemples à l'appui.

IronOCR : bibliothèque OCR .NET

IronOCR est une bibliothèque NuGet .NET OCR qui permet aux développeurs d'intégrer facilement la fonctionnalité de reconnaissance optique de caractères (OCR) dans leurs projets. Grâce à IronOcr, les documents PDF peuvent être numérisés et convertis en texte/données consultables et modifiables sans aucune perte de qualité des données. Les utilisateurs peuvent ainsi trouver facilement les informations dont ils ont besoin dans les documents PDF et apporter des modifications ou des corrections si nécessaire.

IronOCR est la version la plus avancée des binaires de Tesseract disponible pour toutes les plateformes. Il offre une vitesse et une précision accrues, ainsi qu'une DLL/API native qui prend en charge toutes les versions de Tesseract (de Tesseract 3 à Tesseract 5) en une seule installation/téléchargement facile.

La prise en charge linguistique d'IronOCR est étendue, avec 125 langues internationales à la disposition des utilisateurs. La langue anglaise est installée par défaut avec l'outil/DLL. Toutefois, vous pouvez facilement ajouter d'autres langues en les installant via NuGet ou en téléchargeant des DLL.

Comparaison avec Tesseract

IronOCR est spécialement conçu pour les développeurs C# et s'intègre parfaitement aux applications .NET. En revanche, Tesseract est une bibliothèque OCR générique qui nécessite que les développeurs écrivent leurs propres wrappers pour l'utiliser avec C#. En outre, IronOCR offre une précision et une vitesse supérieures à celles des autres bibliothèques, grâce à ses algorithmes innovants d'intelligence artificielle.

IronOCR est accompagné d'une documentation complète et d'une assistance technique, ce qui permet aux développeurs, même novices, d'être rapidement opérationnels.

IronOCR est beaucoup plus précis que Tesseract. En fait, il a un taux de précision de plus de 99 %, alors que le taux de précision de Tesseract n'est que de 70,2 % à 92,9 %. Obtenez plus d'informations et de support sur la comparaison entre IronOCR et Tesseract sur cette vidéo YouTube.

Étapes de la création d'une application OCR MAUI

Suivez ces étapes pour créer une application OCR dans le .NET MAUI framework à l'aide d'IronOCR.

Prérequis

Voici les conditions préalables à la création d'une application OCR en .NET MAUI :

  1. Visual Studio 2022 (dernière version)
  2. .NET 6 ou 7
  3. Paquets MAUI installés dans Visual Studio
  4. Un projet MAUI .NET exécuté dans Visual Studio

Installer IronOCR

La première étape consiste à installer la bibliothèque IronOCR à l'aide de la console du gestionnaire de paquets NuGet. Ouvrez la console NuGet Package Manager en cliquant avec le bouton droit de la souris sur l'explorateur de solutions et en exécutant la commande suivante pour installer la bibliothèque IronOCR :

Install-Package IronOcr

Conception frontale

Nous allons concevoir l'interface de l'application dans cette section. Ouvrez le fichier MainPage.xaml.

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

MainPage.xaml

Nous désignons un bouton qui nous aidera à sélectionner l'image ou le document PDF pour l'OCR. La propriété Clicked du bouton est définie pour exécuter la fonction IOCR que nous définirons dans la section suivante.

<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

Ici, nous créons un élément Image portant le nom OCRImage. Cette boîte à images affichera le fichier sélectionné.

<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

Ensuite, nous créons un contrôle Editeur. Elle sera utilisée pour montrer le texte extrait de l'image ou du document PDF.

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

Voici le balisage de l'interface utilisateur XAML terminé.

<?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

Il est maintenant temps d'écrire le code pour la fonctionnalité OCR.

Code pour l'OCR à l'aide d'IronOCR

Ouvrez le fichier de classe MainPage.xaml.cs et écrivez la fonction suivante :

 .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; 
    }
}
Private Async Sub IOCR(ByVal sender As Object, ByVal e As EventArgs)
	' Prompt user to select an image using FilePicker
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})

	' Get the full path of the selected image
	Dim path = images.FullPath.ToString()

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

	' Create an IronTesseract object to perform OCR
	Dim ocr = New IronTesseract()

	' Perform OCR and extract text from the selected image
	Using input = New OcrInput()
		input.AddImage(path) ' Add image to the OCR input
		Dim result As OcrResult = ocr.Read(input) ' Perform OCR
		Dim text As String = result.Text ' Extract text

		' Display extracted text in the Editor control
		outputText.Text = text
	End Using
End Sub
$vbLabelText   $csharpLabel

Décomposons le code ci-dessus :

  • Le code utilise le FilePicker pour permettre à l'utilisateur de sélectionner un fichier image sur l'appareil. Le sélecteur de fichiers est configuré pour n'autoriser que les images.
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();
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
	.PickerTitle = "Pick image",
	.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
$vbLabelText   $csharpLabel
  • Le contrôle Image est configuré pour afficher l'image sélectionnée à l'aide de son chemin d'accès.
OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
$vbLabelText   $csharpLabel
  • Un objet IronTesseract est créé pour effectuer l'OCR. L'image sélectionnée est ajoutée à un objet OcrInput. La méthode Read est appelée pour extraire le texte de l'image, qui est ensuite affiché dans le contrôle 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; 
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
	input.AddImage(path)
	Dim result As OcrResult = ocr.Read(input)
	Dim text As String = result.Text
	outputText.Text = text
End Using
$vbLabelText   $csharpLabel

Sortie

Après avoir lancé le projet, l'interface utilisateur ci-dessous s'affiche. Lorsque vous cliquez sur le bouton, vous êtes invité à sélectionner une image/PDF à partir de n'importe quel emplacement.

 .NET MAUI OCR Tutorial Using IronOCR - Figure 3 : OCR Output

Sortie OCR

sortie OCR

Après avoir sélectionné l'image, IronOCR la traite et affiche les mots reconnus dans le contrôle de l'éditeur. Vous pouvez copier le texte à partir du contrôle de l'éditeur.

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

Image OCR

Image OCR

D'après les résultats, il apparaît qu'IronOCR effectue un travail formidable dans le traitement d'images complexes avec des motifs, en montrant des résultats précis. IronOCR est capable de détecter les petits détails et de sélectionner les lettres exactes requises à l'aide de ses modèles pré-entraînés.

<{i :(Exécuter le projet en mode release avec le débogage attaché peut causer des problèmes. Dans ce cas, vous pouvez publier le projet en tant qu'application .NET MAUI non packagée, comme indiqué dans le lien ci-dessous, afin de vous assurer que l'application fonctionne correctement.)}>

Conclusion

For further reading, refer to this tutorial which provides additional information about how to use IronOCR to read text from images.

IronOCR est gratuit à des fins de développement. Vous pouvez l'acheter à un prix très bas à partir de $799. Consultez le plan tarifaire ici.

Questions Fréquemment Posées

À quoi sert .NET MAUI dans le développement d'applications ?

.NET MAUI (Multi-platform App UI) est utilisé pour créer des applications multiplateformes avec une seule base de code, permettant aux développeurs de cibler les plates-formes Android, iOS et Windows.

Comment les développeurs peuvent-ils effectuer de l'OCR dans une application .NET MAUI ?

Les développeurs peuvent effectuer de l'OCR dans une application .NET MAUI en intégrant IronOCR, une bibliothèque OCR .NET. IronOCR permet la conversion d’images et de PDF en texte consultable et modifiable.

Quelles sont les étapes pour configurer IronOCR dans un projet .NET MAUI ?

Pour configurer IronOCR dans un projet .NET MAUI, installez la bibliothèque IronOCR via NuGet, configurez votre frontend dans Visual Studio et implémentez le code C# nécessaire pour effectuer l'OCR en utilisant l'objet IronTesseract.

Quelle est la précision d'IronOCR lors du traitement du texte ?

IronOCR offre un taux de précision élevé de plus de 99 % lors du traitement du texte, ce qui le rend plus fiable que d'autres solutions OCR comme Tesseract grâce à ses algorithmes d'intelligence artificielle avancés.

IronOCR peut-il gérer plusieurs langues ?

Oui, IronOCR prend en charge 125 langues internationales, l'anglais étant installé par défaut. Des langues supplémentaires peuvent être ajoutées via NuGet ou en téléchargeant des DLL de langues spécifiques.

Comment sélectionnez-vous un fichier image pour l'OCR dans une application .NET MAUI ?

Dans une application .NET MAUI, vous pouvez sélectionner un fichier image pour l'OCR à l'aide de la classe FilePicker, qui permet aux utilisateurs de choisir des images sur leur appareil pour l'extraction de texte.

Quel est le rôle du contrôle Editor dans l'affichage des résultats OCR ?

Le contrôle Editor dans une application .NET MAUI est utilisé pour afficher le texte extrait des images traitées par IronOCR, fournissant une interface aux utilisateurs pour visualiser les résultats OCR.

Y a-t-il un coût associé à l'utilisation de IronOCR pour le développement ?

IronOCR est gratuit à utiliser pour les besoins de développement. Cependant, une licence est requise pour une utilisation en production, qui peut être obtenue à un prix compétitif.

Qu'est-ce qui fait d'IronOCR un choix privilégié pour les développeurs C# ?

IronOCR est un choix préféré pour les développeurs C# en raison de son intégration transparente avec les applications .NET, de sa haute précision, de sa rapidité et de sa prise en charge de plusieurs langues, ce qui le rend supérieur à de nombreuses autres bibliothèques OCR.

Comment les développeurs peuvent-ils améliorer la fonctionnalité de leur application OCR .NET MAUI ?

Les développeurs peuvent améliorer leur application OCR .NET MAUI en explorant les ressources supplémentaires fournies par IronOCR, en utilisant sa documentation complète et son support pour implémenter des fonctionnalités avancées.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,044,537 | Version : 2025.11 vient de sortir