.NET MAUI OCR mit IronOCR
Einführung
Microsoft hat .NET MAUI (Multi-platform App UI) veröffentlicht, ein Framework zur Erstellung plattformübergreifender Anwendungen mit dem .NET Framework. 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 [GitHub](https://github.com/dotnet/maui" target="_blank" rel="nofollow noreferrer noopener) erhalten.
In diesem Leitfaden erfahren Sie, wie Sie mit der IronOCR-Bibliothek eine OCR-Prozessoranwendung auf .NET MAUI erstellen.
Wie man OCR in .NET Maui durchführt
- Laden Sie die C#-Bibliothek für die OCR-Durchführung in .NET Maui herunter
- Konfigurieren Sie das Frontend des Maui-Projekts
- Geben Sie den vollständigen Pfad des Bildes unter Verwendung der FilePicker-Klasse an
- Rufen Sie die
Read
-Methode auf, um OCR auf dem Bild durchzuführen - Greifen Sie auf den extrahierten Text zu, indem Sie auf die Text-Eigenschaft zugreifen und ihn anzeigen
IronOCR: .NET OCR-Bibliothek
IronOCR ist eine .NET OCR NuGet-Bibliothek, die es Entwicklern ermöglicht, die Funktionalität zur optischen Zeichenerkennung (OCR) einfach 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 erhöhte Geschwindigkeit, Genauigkeit und eine native DLL/API, die alle Versionen von Tesseract unterstützt (von Tesseract 3 bis Tesseract 5) mit einer einfachen Installation/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. Erhalten Sie mehr Informationen und Unterstützung zum Vergleich von IronOCR und Tesseract im [YouTube](https://www.youtube.com/watch?v=2QTEb6x8NJ4" target="_blank" rel="nofollow noopener noreferrer)-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.
Visual Studio 2022 (neueste Version)
.NET 6 oder 7
In Visual Studio installierte MAUI-Pakete
- 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.

MainPage.xaml
Wir benennen eine Schaltfläche, die uns hilft, das Bild oder PDF-Dokument für die OCR auszuwählen. Die Eigenschaft clicked
des Buttons ist 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" />
Hier erstellen wir eine Image
-Box 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" />
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"
/>
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>
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.

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;
}
}
Private Async Sub IOCR(ByVal sender As Object, ByVal e As EventArgs)
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
OCRImage.Source = path
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
End Sub
Schlüsseln wir den obigen Code auf.
Der folgende Codeausschnitt hilft beim Auswählen des Bildes mit dem FilePicker
-Objekt von C#. Der FilePicker
-Titel und der FilePicker
-Dateityp sind 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()
Das Image
-Box-Steuerelement wird als Nächstes so konfiguriert, dass es das im obigen path
-Variablen angegebene Bild verwendet.
OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
Anschließend beginnen wir mit der Nutzung von IronOCR, indem wir eine neue Instanz der IronTesseract
-Klasse 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
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.

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.

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.
Bitte beachten Sie
Schlussfolgerung
Für weitere Lektüre verweisen wir auf dieses Tutorial, das zusätzliche Informationen darüber bietet, wie man IronOCR verwendet, um Text aus Bildern zu lesen.
IronOCR ist für Entwicklungszwecke kostenlos. Sie können es zum sehr niedrigen Preis ab nur $749 erwerben. Überprüfen Sie den Preisplan hier.