.NET MAUI OCR mit IronOCR – Bild zu Text in plattformübergreifenden Apps
Einführung
Microsoft hat .NET MAUI (Multi-platform App UI) veröffentlicht, ein Framework zum Erstellen von plattformübergreifenden Anwendungen mit dem .NET Framework. Es ermöglicht Ihnen, Code zu schreiben, der auf Android, iOS und Windows mit derselben Codebasis läuft – ideal für OCR Software, die Texterkennung auf mehreren Plattformen bietet. .NET MAUI ist Open Source. Sie können den Quellcode des .NET MAUI-Projekts mit Beispielen auf GitHub abrufen.
In diesem How-To-Leitfaden lernen wir, wie man eine Bild zu Text App auf .NET MAUI unter Verwendung der IronOCR-Bibliothek erstellt, die zuverlässig Text erkennen und PDF Text extrahieren kann.
Wie man OCR in .NET MAUI durchführt
- Herunterladen der C#-Bibliothek zur Durchführung von OCR in .NET MAUI
- Konfigurieren Sie das Frontend des MAUI-Projekts
- Übergeben Sie den vollständigen Pfad des Bildes mit Hilfe der **FilePicker**-Klasse
- Rufen Sie die Methode `Lesen` auf, um die OCR für das Bild durchzuführen
- Zugriff auf den extrahierten Text durch Zugriff auf die Eigenschaft **Text** und dessen Anzeige
IronOCR: .NET OCR-Bibliothek
IronOCR ist eine .NET OCR NuGet-Bibliothek, die es Entwicklern ermöglicht, Optical Character Recognition (OCR)-Funktionen einfach in ihre Projekte zu integrieren. Mit IronOCR können PDF-Dokumente gescannt und in durchsuchbaren und bearbeitbaren Text/Daten umgewandelt werden, ohne dass Datenqualität verloren geht. Dies erleichtert den Benutzern das Auffinden der benötigten Informationen aus PDF-Dokumenten und das Durchführen von Änderungen oder Korrekturen, falls erforderlich.
IronOCR ist der fortschrittlichste Build der Tesseract-Binärdateien, der auf jeder Plattform verfügbar ist. Es bietet erhöhte Geschwindigkeit, Genauigkeit und eine native DLL/API, die alle Versionen von Tesseract (von Tesseract 3 bis Tesseract 5) mit einer einfachen Installation/Herunterladung unterstützt.
IronOCR unterstützt umfangreiche Sprachunterstützung mit 125 internationalen Sprachen, die den Benutzern zur Verfügung stehen. Die englische Sprache ist 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, die Entwickler erfordert, eigene Wrapper zu schreiben, um sie mit C# zu verwenden. Darüber hinaus bietet IronOCR im Vergleich zu anderen Bibliotheken dank seiner innovativen Algorithmen der künstlichen Intelligenz eine überlegene Genauigkeit und Geschwindigkeit.
IronOCR kommt mit umfassender Dokumentation und technischem Support, was es auch für unerfahrene Entwickler einfach macht, schnell loszulegen.
IronOCR ist viel genauer als Tesseract. Tatsächlich hat es eine Genauigkeitsrate von über 99 %, während die Genauigkeitsrate von Tesseract nur bei etwa 70,2 % bis 92,9 % liegt. Weitere Informationen und Unterstützung zum Vergleich von IronOCR und Tesseract finden Sie in diesem YouTube-Video.
Schritte zur Erstellung einer OCR MAUI-App
Folgen Sie diesen Schritten, um eine OCR-App im .NET MAUI-Framework mit IronOCR zu erstellen.
Voraussetzungen
Für die Erstellung einer OCR-App in .NET MAUI sind dies die Voraussetzungen:
- Visual Studio 2022 (Neueste Version)
- .NET 6 oder 7
- MAUI-Pakete, die in Visual Studio installiert sind
- Ein .NET MAUI-Projekt, das in Visual Studio läuft
Installieren Sie IronOCR
Der erste Schritt besteht darin, die IronOCR-Bibliothek mit der NuGet-Paket-Manager-Konsole zu installieren. Öffnen Sie die NuGet-Paket-Manager-Konsole, indem Sie im Lösungsexplorer mit der rechten Maustaste klicken und den folgenden Befehl ausführen, um die IronOCR-Bibliothek zu installieren:
Install-Package IronOcr
Frontend-Design
Wir werden das Frontend der Anwendung in diesem Abschnitt entwerfen. Öffnen Sie die Datei MainPage.xaml.
MainPage.xaml
Wir weisen einen Button zu, der uns hilft, das Bild oder das PDF-Dokument für OCR auszuwählen. Die Eigenschaft Clicked des Buttons ist so eingestellt, dass die Funktion IOCR ausgeführt wird, die wir im nächsten Abschnitt definieren werden.
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
Hier erstellen wir ein Image Element mit dem Namen OCRImage. Dieser Bildbereich zeigt die ausgewählte Datei an.
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
<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" />
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
Hier ist das vollständige Markup der XAML-Benutzeroberfläche.
<?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>
Jetzt 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:
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
Lassen Sie uns den obigen Code aufteilen:
Der Code verwendet FilePicker, um dem Benutzer die Auswahl einer Bilddatei vom Gerät zu ermöglichen. Die Dateiauswahl ist so konfiguriert, dass nur Bilder zugelassen werden.
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 Steuerelement
Imageist so eingestellt, dass es das ausgewählte Bild anhand seines Dateipfads anzeigt.
OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
- Zur Durchführung der OCR wird ein
IronTesseract-Objekt erstellt. Das ausgewählte Bild wird einemOcrInputObjekt hinzugefügt. Die MethodeReadwird aufgerufen, um Text aus dem Bild zu extrahieren, der dann im SteuerelementEditorangezeigt wird.
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 Start des Projekts wird die unten stehende Benutzeroberfläche angezeigt. Wenn Sie auf die Schaltfläche klicken, werden Sie aufgefordert, ein Bild/PDF aus einem beliebigen Ort auszuwählen.
OCR-Ausgabe
Nach Auswahl des Bildes verarbeitet IronOCR das Bild und zeigt die erkannten Wörter in der Editor-Steuerung an. Sie können den Text aus der Editor-Steuerung kopieren.
OCR-Bild
Aus den Ergebnissen geht hervor, dass IronOCR eine hervorragende Arbeit beim Verarbeiten komplexer Bilder mit Mustern leistet und genaue Ergebnisse liefert. IronOCR ist in der Lage, kleine Details zu erkennen und die gewünschten Buchstaben mithilfe seiner vortrainierten Modelle auszuwählen.
<{i:(Running the project in release mode with debugging attached might cause issues. In solchen Fällen können Sie das Projekt als unverpackte .NET MAUI-App, wie im unten stehenden Link gezeigt, veröffentlichen, um sicherzustellen, dass die App ordnungsgemäß funktioniert.)}
Abschluss
Für weitere Informationen lesen Sie dieses Tutorial, das zusätzliche Informationen darüber bietet, wie IronOCR verwendet wird, um Text aus Bildern zu lesen.
IronOCR ist kostenlos für Entwicklungszwecke. Sie können es zu einem sehr niedrigen Preis ab nur $799 erwerben. Überprüfen Sie den Preisplan hier.
Häufig gestellte Fragen
Wofür wird .NET MAUI in der App-Entwicklung verwendet?
.NET MAUI (Multi-platform App UI) wird verwendet, um plattformübergreifende Anwendungen mit einer einzigen Codebasis zu erstellen, wodurch Entwickler Android-, iOS- und Windows-Plattformen ansprechen können.
Wie können Entwickler OCR in einer .NET MAUI-App durchführen?
Entwickler können OCR in einer .NET MAUI-App durchführen, indem sie IronOCR integrieren, eine .NET OCR-Bibliothek. IronOCR ermöglicht die Umwandlung von Bildern und PDFs in durchsuchbaren und bearbeitbaren Text.
Was sind die Schritte, um IronOCR in einem .NET MAUI-Projekt einzurichten?
Um IronOCR in einem .NET MAUI-Projekt einzurichten, installieren Sie die IronOCR-Bibliothek über NuGet, konfigurieren Sie Ihr Frontend in Visual Studio und implementieren Sie den notwendigen C#-Code, um OCR mithilfe des IronTesseract-Objekts durchzuführen.
Wie genau ist IronOCR bei der Textverarbeitung?
IronOCR bietet eine hohe Genauigkeitsrate von über 99% bei der Textverarbeitung und ist aufgrund seiner fortschrittlichen KI-Algorithmen zuverlässiger als andere OCR-Lösungen wie Tesseract.
Kann IronOCR mehrere Sprachen verarbeiten?
Ja, IronOCR unterstützt 125 internationale Sprachen, wobei Englisch standardmäßig installiert ist. Zusätzliche Sprachen können über NuGet hinzugefügt oder durch das Herunterladen spezifischer Sprach-DLLs integriert werden.
Wie wählt man eine Bilddatei für OCR in einer .NET MAUI-App aus?
In einer .NET MAUI-App können Sie eine Bilddatei für OCR auswählen, indem Sie die FilePicker-Klasse verwenden, die Benutzern ermöglicht, Bilder von ihrem Gerät für die Textextraktion auszuwählen.
Welche Rolle spielt die Editor-Kontrolle bei der Anzeige von OCR-Ergebnissen?
Die Editor-Kontrolle in einer .NET MAUI-App wird verwendet, um Text anzuzeigen, der aus Bildern extrahiert wurde, die von IronOCR verarbeitet wurden, und bietet eine Schnittstelle für Benutzer, um OCR-Ergebnisse anzusehen.
Sind mit der Nutzung von IronOCR für die Entwicklung Kosten verbunden?
IronOCR ist kostenlos für Entwicklungszwecke nutzbar. Für die Produktion ist jedoch eine Lizenz erforderlich, die zu einem wettbewerbsfähigen Preis erhältlich ist.
Was macht IronOCR zu einer bevorzugten Wahl für C#-Entwickler?
IronOCR ist eine bevorzugte Wahl für C#-Entwickler aufgrund seiner nahtlosen Integration in .NET-Anwendungen, seiner hohen Genauigkeit, Geschwindigkeit und Unterstützung für mehrere Sprachen, was es vielen anderen OCR-Bibliotheken überlegen macht.
Wie können Entwickler die Funktionalität ihrer .NET MAUI OCR-App verbessern?
Entwickler können die Funktionalität ihrer .NET MAUI OCR-App verbessern, indem sie zusätzliche Ressourcen von IronOCR erkunden und dessen umfassende Dokumentation und Support nutzen, um fortschrittliche Funktionen zu implementieren.

