OCR .NET MAUI utilisant IronOCR

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

Introduction

Microsoft a lancé .NET MAUI (Multi-platform App UI), un framework permettant de créer des applications multiplateformes avec le framework .NET. 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 fait gagner 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 apprendrons à créer une application de traitement OCR sur .NET MAUI en utilisant la bibliothèque IronOCR avec des exemples.

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é. Cela permet aux utilisateurs de trouver facilement les informations dont ils ont besoin dans les documents PDF et d'apporter des modifications ou des corrections si nécessaire.

IronOCR est la version la plus avancée des binaires 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) avec une installation/un téléchargement facile.

IronOCR offre une prise en charge linguistique étendue, avec 125 langues internationales disponibles pour les 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. À l'inverse, Tesseract est une bibliothèque OCR générique qui exige des développeurs qu'ils écrivent leurs propres wrappers pour l'utiliser avec C#. De plus, grâce à ses algorithmes d'intelligence artificielle innovants, IronOCR offre une précision et une vitesse supérieures à celles des autres bibliothèques.

IronOCR est fourni avec une documentation complète et un support technique, ce qui permet même aux développeurs novices de le prendre en main rapidement.

IronOCR est bien plus précis que Tesseract. En réalité, son taux de précision dépasse 99 %, tandis que celui de Tesseract n'est que d'environ 70,2 % à 92,9 %. Pour plus d'informations et d'assistance concernant la comparaison entre IronOCR et Tesseract, consultez cette vidéo YouTube .

Étapes pour créer une application OCR MAUI

Suivez ces étapes pour créer une application OCR dans le framework .NET MAUI en utilisant IronOCR.

Prérequis

Pour créer une application OCR en .NET MAUI, voici les prérequis :

  1. Visual Studio 2022 (Dernière version)
  2. .NET 6 ou 7
  3. Les packages MAUI installés dans Visual Studio
  4. Un projet .NET MAUI 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 packages NuGet. Ouvrez la console du gestionnaire de packages NuGet en cliquant avec le bouton droit sur l'explorateur de solutions et en exécutant la commande suivante pour installer la bibliothèque IronOCR :

Install-Package IronOcr

Conception de l'interface utilisateur

Dans cette section, nous allons concevoir l'interface utilisateur de l'application. Ouvrez le fichier MainPage.xaml .

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

MainPage.xaml

Nous avons prévu un bouton qui nous permettra de sélectionner l'image ou le document PDF pour la reconnaissance optique de caractères (OCR). La propriété Clicked du bouton est configurée 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 nommé OCRImage . Cette zone d'image 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 Editor . Il servira à afficher 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 XAML complet de l'interface utilisateur.

<?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 la reconnaissance optique de caractères (OCR) utilisant 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

Analysons le code ci-dessus :

Le code utilise le FilePicker pour permettre à l'utilisateur de sélectionner un fichier image sur son appareil. Ce sélecteur est configuré pour n'accepter 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 en utilisant son chemin d'accès au fichier.
OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
$vbLabelText   $csharpLabel
  • Un objet IronTesseract est créé pour effectuer la reconnaissance optique de caractères (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

Une fois le projet exécuté, l'interface utilisateur ci-dessous s'affiche. En cliquant sur le bouton, vous serez invité à sélectionner une image ou un fichier PDF depuis n'importe quel emplacement.

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

Sortie OCR

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

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

Image OCR

Les résultats montrent qu'IronOCR excelle dans le traitement d'images complexes comportant des motifs, et fournit des résultats précis. IronOCR est capable de détecter de petits détails et de sélectionner les lettres exactes nécessaires en utilisant ses modèles pré-entraînés.

<{i:(L'exécution du projet en mode release avec le débogage activé peut entraîner des problèmes. Dans ce cas, vous pouvez publier le projet en tant qu'application .NET MAUI non empaquetée, comme indiqué dans le lien ci-dessous, afin de garantir le bon fonctionnement de l'application.

Conclusion

Pour en savoir plus, consultez ce tutoriel qui fournit des informations supplémentaires sur la façon d'utiliser IronOCR pour lire du texte à partir d'images .

IronOCR est gratuit à des fins de développement. Vous pouvez l'acheter à un prix très bas à partir de seulement $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,167,857 | Version: 2025.11 vient de sortir