.NET MAUI OCR mit IronOCR

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

Einführung

Microsoft veröffentlicht .NET MAUI(Multiplattform-App UI)das ein Framework für die Erstellung plattformübergreifender Anwendungen mit dem .NET-Framework ist. Sie können damit Code schreiben, der auf Android, iOS und Windows läuft, und dabei dieselbe Codebasis verwenden, wodurch Sie Zeit, Ressourcen und Aufwand sparen. .NET MAUI ist quelloffen. Sie können den Quellcode des .NET MAUI-Projekts mit Beispielen auf der Website GitHub.

In diesem Leitfaden erfahren Sie, wie Sie mit der IronOCR-Bibliothek eine OCR-Prozessoranwendung auf .NET MAUI erstellen.

IronOCR: .NET OCR-Bibliothek

IronOCR ist eine .NET OCR NuGet-Bibliothek, die es Entwicklern ermöglicht, Optical Character Recognition (OCR) einfach zu integrieren(OCR) funktionalität in ihre Projekte zu integrieren. Mit IronOCR können PDF-Dokumente gescannt und in durchsuchbare und bearbeitbare Texte/Daten umgewandelt werden, ohne dass die Datenqualität darunter leidet. Dies erleichtert es den Benutzern, die benötigten Informationen in PDF-Dokumenten zu finden und bei Bedarf Änderungen oder Korrekturen vorzunehmen.

IronOCR ist die fortschrittlichste Version der Tesseract-Binärdateien, die für jede Plattform verfügbar ist. Es bietet höhere Geschwindigkeit und Genauigkeit sowie eine native DLL/API, die alle Versionen von Tesseract unterstützt(von Tesserakt 3 bis Tesserakt 5) mit einer einfachen Installation/einem einfachen Download.

IronOCRs Sprachunterstützung ist umfangreich: 125 internationale Sprachen stehen den Benutzern zur Verfügung. Die englische Sprache wird standardmäßig mit dem Tool/DLL installiert. Sie können jedoch problemlos weitere Sprachen hinzufügen, indem Sie sie über NuGet installieren oder DLLs herunterladen.

Vergleich mit Tesseract

IronOCR ist speziell für C#-Entwickler konzipiert und lässt sich nahtlos in .NET-Anwendungen integrieren. Im Gegensatz dazu ist Tesseract eine generische OCR-Bibliothek, für die Entwickler ihre eigenen Wrapper schreiben müssen, um sie mit C# verwenden zu können. Darüber hinaus bietet IronOCR dank seiner innovativen Algorithmen mit künstlicher Intelligenz im Vergleich zu anderen Bibliotheken eine überragende Genauigkeit und Geschwindigkeit.

IronOCR wird mit einer umfassenden Dokumentation und technischem Support geliefert, so dass auch unerfahrene Entwickler schnell mit der Anwendung arbeiten können.

IronOCR ist viel genauer als Tesseract. Tatsächlich hat es eine Trefferquote von über 99 %, während die Trefferquote von Tesseract nur zwischen 70,2 % und 92,9 % liegt. Weitere Informationen und Unterstützung zu IronOCR und dem Tesseract-Vergleich finden Sie unter YouTube video.

Schritte zur Erstellung einer OCR-MAUI-Anwendung

Folgen Sie den nächsten Schritten, um eine OCR-Anwendung im .NET MAUI-Framework mit IronOCR zu erstellen.

Voraussetzungen

Um eine OCR-Anwendung in .NET MAUI zu erstellen, sind einige Voraussetzungen erforderlich.

  1. Visual Studio 2022(Letzte Version)
  2. .NET 6 oder 7
  3. In Visual Studio installierte MAUI-Pakete
  4. Ein .NET MAUI-Projekt, das in Visual Studio ausgeführt wird

IronOCR installieren

Der erste Schritt ist die Installation der IronOCR-Bibliothek über die NuGet Packages Manager Console. Öffnen Sie die NuGet Packages Console, indem Sie mit der rechten Maustaste auf den Projektmappen-Explorer klicken und den folgenden Befehl eingeben, um die IronOCR-Bibliothek zu installieren.

Install-Package IronOcr

Frontend-Design

In diesem Abschnitt werden wir das Frontend der Anwendung entwerfen. Öffnen Sie die Datei MainPage.xaml.

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

MainPage.xaml

Wir benennen eine Schaltfläche, die uns hilft, das Bild oder PDF-Dokument für die OCR auszuwählen. Die Eigenschaft "angeklickt" der Schaltfläche wird so eingestellt, dass die Funktion "IOCR" ausgeführt wird. Wir werden diese Funktion im nächsten Abschnitt definieren.

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

Hier erstellen wir ein Feld "Bild" mit dem Namen "OCRImage". Dieses Bildfeld dient zur Anzeige der ausgewählten Datei.

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

Als nächstes erstellen wir ein "Editor"-Steuerelement. Es wird verwendet, um den extrahierten Text aus dem Bild oder PDF-Dokument anzuzeigen.

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

Hier ist das fertige XAML User Interface Markup.

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

Nun ist es an der Zeit, den Code für die OCR-Funktionalität zu schreiben.

Code für OCR mit IronOCR

Öffnen Sie die Klassendatei "MainPage.xaml.cs" und schreiben Sie die folgende Funktion hinein.

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

MainPage.xaml.cs

private async void IOCR(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var path = images.FullPath.ToString();
    OCRImage.Source = path;
    var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
}
private async void IOCR(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var path = images.FullPath.ToString();
    OCRImage.Source = path;
    var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Schlüsseln wir den obigen Code auf.

Der folgende Code hilft bei der Auswahl des Bildes mit dem C#-Objekt FilePicker. Der "FilePicker"-Titel und der "FilePicker"-Dateityp werden beide auf Werte gesetzt, zusammen mit dem Pfad des Bildes.

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()
VB   C#

Als Nächstes wird das Steuerelement "Bild" so konfiguriert, dass es das oben in der Variable "Pfad" angegebene Bild verwendet.

OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
VB   C#

Danach beginnen wir mit der Nutzung von IronOCR, indem wir eine neue Instanz der Klasse IronTesseract erstellen. Wir verwenden es, um Text aus dem ausgewählten Bild zu extrahieren und anschließend den Inhalt im Editor-Steuerelement anzuzeigen.

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
VB   C#

Ausgabe

Nach dem Ausführen des Projekts wird die folgende Benutzeroberfläche angezeigt. Wenn Sie auf die Schaltfläche klicken, werden Sie aufgefordert, das Bild/PDF von einem beliebigen Ort auszuwählen.

.NET MAUI OCR Tutorial Using IronOCR - Abbildung 3: OCR-Ausgabe

OCR-Ausgabe

Nach der Auswahl des Bildes verarbeitet IronOCR das Bild und zeigt die erkannten Wörter in der Editorsteuerung an. Sie können den Text aus dem Editor-Control kopieren.

.NET MAUI OCR Tutorial Using IronOCR - Abbildung 4: OCR-Bild

OCR-Bild

Die Ergebnisse zeigen, dass IronOCR bei der Verarbeitung komplexer Bilder mit Mustern hervorragende Arbeit leistet und genaue Ergebnisse liefert. IronOCR ist in der Lage, den roten Punkt auf dem Buchstaben zu erkennen und mit Hilfe seiner vorher trainierten Modelle genau den gewünschten Buchstaben auszuwählen.

Schlussfolgerung

Weitere Informationen finden Sie in diesem Dokumentlehrgang die zusätzliche Informationen über die Verwendung von IronOCR enthält, umtext aus Bildern lesen.

IronOCR ist für Entwicklungszwecke kostenlos. Sie können es für den sehr niedrigen Preis ab nur $749 erwerben. Sehen Sie sich den Preisplan anhier.