Handschrift zu Text – Bild zu Text Texterkennung für Handschriften mit IronOCR
IronOCR bietet eine spezielle Methode, die handgeschriebenen Text zuverlässig aus Bildern digitalisiert und Bild zu Text konvertiert – trotz unregelmäßiger Abstände und Strichvariationen mit einer Genauigkeit von rund 90 % bei englischer Handschrift.
Schnellstart: Handschriftbilder mit IronOCR lesen
- Installieren Sie IronOCR und das IronOcr.Extensions.AdvancedScan-Paket
- Erstellen Sie eine
IronTesseractInstanz - Laden Sie Ihr Handschriftbild mit
LoadImage()hoch. - Rufen Sie die Methode
ReadHandwriting()an - Greifen Sie auf den extrahierten Text von
OcrResultzu.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
using IronOcr; var ocrTesseract = new IronTesseract(); using var ocrInput = new OcrInput(); ocrInput.LoadImage("handwriting.png"); var ocrResult = ocrTesseract.ReadHandwriting(ocrInput); Console.WriteLine(ocrResult.Text); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Das automatische Lesen von handgeschriebenem Text aus Bildern ist äußerst schwierig, da Menschen unterschiedlich schreiben. Diese massive Inkonsistenz macht die OCR zu einer Herausforderung. Wichtige Dokumente wie alte Aufzeichnungen, Patientenaufnahmeformulare und Kundenumfragen müssen immer noch manuell bearbeitet werden, was zu fehleranfälligen Arbeitsabläufen führt, die die Datenintegrität gefährden.
IronOCR löst dieses Problem durch die Einführung einer speziellen Methode zum zuverlässigen Verstehen und Digitalisieren von Handschriftbildern. IronOCR basiert auf der leistungsstarken Tesseract 5-Engine und kombiniert fortschrittliche Bildverarbeitung mit maschinellem Lernen, um branchenführende Handschrifterkennungsfunktionen zu bieten.
Dieser Leitfaden führt Sie Schritt für Schritt durch die Implementierung von OCR für Handschriften in Ihren .NET-Anwendungen. Ganz gleich, ob Sie historische Dokumente digitalisieren, medizinische Formulare bearbeiten oder handschriftliche Notizen konvertieren, Sie erfahren, wie Sie mit IronOCR zuverlässige Ergebnisse erzielen.
Erste Schritte mit IronOCR
Wie man mit IronOCR Handschriften liest
- Herunterladen der C#-Bibliothek zum Lesen von Handschriftbildern
- Instanziiere die OCR-Engine
- Laden Sie das Handschriftbild mit `LoadImage`
- Verwenden Sie die Methode `ReadHandwriting`, um Daten aus dem Beispiel-Handschriftbild zu extrahieren
- Über die Eigenschaft **"OcrResult"** können Sie die extrahierten Daten anzeigen und bearbeiten.
Um diese Funktion zu nutzen, müssen Sie zunächst das Paket IronOcr.Extensions.AdvancedScan installieren. Bitte beachten Sie, dass die Methode ReadHandwriting derzeit nur Englisch unterstützt. Für die OCR mehrerer Sprachen verwenden Sie die Standardmethode Read() mit den entsprechenden Sprachpaketen.
Wie lese ich handschriftliche Bilder mit IronOCR?
Das Lesen eines handschriftlichen Bildes mit IronOCR ist ganz einfach. Zuerst wird die OCR-Engine instanziiert, dann wird das Bild mit LoadImage geladen und schließlich wird die spezielle Methode ReadHandwriting verwendet, die für die Handschrifterkennung entwickelt wurde. Drucken Sie den extrahierten Text aus, um die Genauigkeit und den Inhalt zu überprüfen.
Vor der Bearbeitung sollten Sie Bildqualitätskorrekturfilter anwenden, um die Lesbarkeit zu verbessern. Diese Filter können die Erkennungsgenauigkeit erheblich verbessern, insbesondere bei gescannten Dokumenten mit geringem Kontrast oder geringer Auflösung.
Welches Eingabeformat sollte ich verwenden?
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR on the handwriting image
OcrHandwritingResult result = ocr.ReadHandwriting(inputHandWriting);
// Output the recognized handwritten text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR on the handwriting image
Dim result As OcrHandwritingResult = ocr.ReadHandwriting(inputHandWriting)
' Output the recognized handwritten text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
Welche Ergebnisse kann ich erwarten?
Die Methode ReadHandwriting erreichte eine Konfidenzrate von 90,6 % und identifizierte den Großteil des Textes, einschließlich des einleitenden Satzes "Mein Name ist Erin Fish", korrekt.
Dieses überzeugende Ergebnis beweist die Fähigkeit von IronOCR, auch anspruchsvolle handschriftliche Texte zu übersetzen. Obwohl die Engine mit den Abständen und den zusammenhängenden Buchstaben zu kämpfen hatte, gelang es ihr, die Kernaussage zu extrahieren. Dies zeigt, dass IronOCR komplexe, nicht standardisierte Texte effektiv handhabt.
OCR-Neulinge sollten mit unserem einfachen OCR-Tutorial beginnen, um die Grundlagen zu verstehen, bevor sie sich an die Handschrifterkennung machen.
Wie verwende ich die Async-Version?
IronOCR unterstützt eine asynchrone Version: ReadHandwritingAsync. Dies ist nützlich, wenn es um asynchronen Code geht, der das Abrufen von Eingabebildern vor der Verarbeitung erfordert. Die async support documentation bietet eine umfassende Anleitung zur Implementierung asynchroner OCR-Operationen.
Unter Verwendung derselben Eingabe wird hier gezeigt, wie man die async-Methode verwendet:
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image-async.cs
using IronOcr;
using System;
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
#endregion
public class read_handwritten_image_async
{
public async Task codeAsync()
{
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR using the async method with 'await'.
// The compiler automatically infers this top-level code block as an 'async Task Main()' method.
OcrHandwritingResult result = await ocr.ReadHandwritingAsync(inputHandWriting);
// Output the recognized handwriting text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
Imports System.Threading.Tasks
Public Class ReadHandwrittenImageAsync
Public Async Function CodeAsync() As Task
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR using the async method with 'Await'.
' The compiler automatically infers this top-level code block as an 'async Task Main()' method.
Dim result As OcrHandwritingResult = Await ocr.ReadHandwritingAsync(inputHandWriting)
' Output the recognized handwriting text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
End Function
End Class
Sie können einen optionalen Parameter timeoutMs angeben, um Millisekunden vor der automatischen Abbruchzeit festzulegen. Der Standardwert ist -1, was bedeutet, dass es kein Zeitlimit gibt – der Vorgang läuft bis zum Abschluss.
Fortgeschrittene Verarbeitungstechniken
Für komplexe Handschrifterkennungsszenarien sollten Sie diese fortgeschrittenen Techniken in Betracht ziehen:
Regionsspezifische OCR: Wenn Sie mit Formularen oder strukturierten Dokumenten arbeiten, verwenden Sie regionale OCR, um sich auf bestimmte Bereiche mit handschriftlichem Text zu konzentrieren. Dieser Ansatz verbessert die Genauigkeit, indem er den Bearbeitungsbereich einschränkt:
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
Imports IronOcr
Imports IronSoftware.Drawing
Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()
' Define a specific region for signature area
Dim signatureRegion As New CropRectangle(x:=100, y:=500, width:=300, height:=100)
ocrInput.LoadImage("form-with-signature.png", signatureRegion)
Dim signatureResult = ocrTesseract.ReadHandwriting(ocrInput)
Console.WriteLine($"Signature text: {signatureResult.Text}")
End Using
Fortschrittsverfolgung: Für die Stapelverarbeitung mehrerer handschriftlicher Dokumente sollte eine Fortschrittsverfolgung zur Überwachung des OCR-Vorgangs implementiert werden:
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += Sub(sender, e)
Console.WriteLine($"Processing: {e.ProgressPercent}% complete")
End Sub
Welche Herausforderungen sollte ich beachten?
Obwohl IronOCR eine hohe Zuverlässigkeit bei der Beibehaltung der Gesamtstruktur und des Textes erreicht, hat OCR immer noch Probleme mit der Handschrift, was zu lokalisierten Fehlern führt. Häufige Herausforderungen erfordern eine Überprüfung der extrahierten Ausgabe:
Unregelmäßige Abstände: Gedruckter Text hat gleichmäßige Abstände zwischen den Buchstaben. Die Abstände zwischen den Strichen und die Verbindungen zwischen den Buchstaben sind bei der Handschrift sehr unterschiedlich. Dies führt zu einer fehlerhaften Zeichensegmentierung, wie man sieht, wenn ununiformed in einzelne Zeichen (uneinheitlich fokussiert) anstatt in ein einzelnes Wort aufgeteilt wird.
Strichvariation: Jeder Mensch hat eine einzigartige Handschrift, und jeder schreibt denselben Buchstaben anders. Buchstabenverbindungen und -muster variieren erheblich. Dies verhindert ein "Einheitsmodell", da die Engine eine hohe Variabilität bei Strichstärke, Druck und Form bewältigen muss, wodurch der Musterabgleich weniger zuverlässig ist als bei standardisierten Schriftarten.
Mehrdeutige Zeichenformen : Handschriften verwenden oft vereinfachte oder hastig ausgeführte Striche, wodurch mehrdeutige Formen entstehen. Ein schnell geschriebenes e könnte einem c ähneln, oder verbundene l und i könnten verwechselt werden.
Qualitäts- und Auflösungsprobleme: Schlechte Scanqualität, geringe Auflösung oder verblasste Tinte beeinträchtigen die Erkennungsgenauigkeit erheblich. Wenn Sie auf solche Probleme stoßen, finden Sie in unserer Allgemeinen Anleitung zur Fehlerbehebung Lösungen.
Überprüfen Sie bei dieser Methode, ob die Ausgabe mit der beabsichtigten Eingabe übereinstimmt, und achten Sie dabei besonders auf eng beieinander stehende oder schlecht gebildete Wörter. Ziehen Sie die Implementierung einer Nachbearbeitungslogik in Betracht, um häufige Fehlinterpretationen zu behandeln, die für Ihren Anwendungsfall spezifisch sind.
ReadHandwriting Methode kann bei kursiver Schrift nur eine geringe Genauigkeit bei der OCR-Extraktion erreichen. Häufig gestellte Fragen
Welche Genauigkeit kann ich bei der Extraktion von handschriftlichem Text aus Bildern erwarten?
Die ReadHandwriting-Methode von IronOCR erreicht bei der Erkennung englischer Handschriften eine Genauigkeit von etwa 90 %, obwohl unregelmäßige Abstände und Strichvariationen die OCR von Handschriften besonders schwierig machen.
Welche Sprachen werden für die Handschrifterkennung unterstützt?
Die ReadHandwriting-Methode in IronOCR unterstützt derzeit nur Englisch. Für OCR in mehreren Sprachen müssen Sie die Standardmethode Read() mit entsprechenden Sprachpaketen anstelle der speziellen Handschriftmethode verwenden.
Welches zusätzliche Paket muss ich für die OCR von Handschriften installieren?
Um die Handschrifterkennungsfunktion in IronOCR zu nutzen, müssen Sie zusätzlich zur IronOCR-Hauptbibliothek das IronOcr.Extensions.AdvancedScan-Paket installieren.
Wie implementiere ich eine einfache Handschrifterkennung in C#?
Erstellen Sie eine IronTesseract-Instanz, laden Sie Ihr Handschriftbild mit LoadImage(), rufen Sie die Methode ReadHandwriting() auf und greifen Sie auf den extrahierten Text aus dem OcrResult zu. IronOCR erledigt die komplexe Bildverarbeitung und das maschinelle Lernen automatisch.
Welche Arten von handschriftlichen Dokumenten können bearbeitet werden?
IronOCR kann verschiedene handschriftliche Dokumente verarbeiten, darunter historische Aufzeichnungen, Patientenaufnahmeformulare, Kundenumfragen und handschriftliche Notizen. Die Bibliothek wurde entwickelt, um die Inkonsistenzen in der menschlichen Handschrift zu bewältigen, die eine manuelle Verarbeitung fehleranfällig machen.
Auf welcher Technologie basiert die Handschrifterkennung?
Die Handschrifterkennung von IronOCR basiert auf der leistungsstarken Tesseract 5-Engine, die fortschrittliche Bildverarbeitung mit Algorithmen des maschinellen Lernens kombiniert und so branchenführende Handschrifterkennungsfunktionen bietet.

