Die Technologie der optischen Zeichenerkennung(OCR)ermöglicht die Umwandlung von Text in maschinenlesbare digitale Formate. Wenn ein Dokument gescannt wird(wie zum Beispiel eine Rechnung oder eine Quittung)wenn Sie ein Bild scannen, wird es auf Ihrem Computer als Bilddatei gespeichert. Der Text im gescannten Bild kann jedoch nicht mit einem normalen Texteditor bearbeitet, durchsucht oder gezählt werden.
OCR kann jedoch das Bild verarbeiten, Text extrahieren und in ein Textformat umwandeln, das von Computern gelesen werden kann. Dies ermöglicht die Extraktion von Text aus verschiedenen Quellen, einschließlich PDF-Dateien und anderen gescannten Bildern. Darüber hinaus gehen die OCR-Funktionen über die einfache Textextraktion hinaus und umfassen die wichtigsten Bildformate und PDF-Dokumente, die in durchsuchbare OCR-Daten umgewandelt werden.
In C# können Entwickler die Leistungsfähigkeit von OCR durch verschiedene Bibliotheken nutzen, darunter die leistungsstarke BibliothekIronOCR vonIron Software. In diesem Lernprogramm werden wir die Grundlagen der OCR erkunden und zeigen, wie manIronOCR um eine effiziente Zeichenerkennung in C# durchzuführen.
Wie man Zeichenerkennung in C# erstellt;
Erstellen Sie ein brandneues C#-Projekt und benennen Sie es in Visual Studio.
Installieren Sie dieIronOCR .NET-Bibliothek und fügen Sie sie in den Projektordner ein.
Nutzen Sie dieIronOCR Tesseract zum Lesen von Text aus Bildern.
Nutzen Sie dieIronOCR Erweiterte Funktionen zum Lesen des Textes in Bildern
IronOCR eine C#-Bibliothek, entwickelt vonIron Software ist, die erweiterte OCR-Funktionen bietet. Es bietet eine genaue Textextraktion aus Bildern, PDFs und gescannten Dokumenten. Bevor wir in den Code eintauchen, stellen Sie sicher, dass Sie IronOCR in Ihrem Projekt installiert haben.
IronOCR steigert die Fähigkeiten der weit verbreiteten Tesseract OCR-Engine, indem es sowohl die Genauigkeit als auch die Geschwindigkeit verbessert. Es dient als robuste Lösung für die Extraktion von Text aus verschiedenen Quellen, einschließlich Bildern, PDFs und diversen Dokumentenformaten.
Breite Sprachabdeckung
Mit der Unterstützung von mehr als 127 Sprachen ist IronOCR in der Lage, mehrsprachige Anforderungen zu erfüllen, und ist damit die ideale Wahl für Anwendungen, die sprachliche Vielseitigkeit erfordern.
Vielseitige Ausgabemöglichkeiten
Der extrahierte Text kann bequem als reiner Text oder als strukturierte Daten ausgegeben werden, um eine nahtlose Integration in weitere Verarbeitungspipelines zu ermöglichen. Darüber hinaus erleichtert IronOCR die Erstellung von durchsuchbaren PDF-Dateien direkt aus Bilddaten.
Plattformübergreifende Anpassungsfähigkeit
IronOCR wurde für die Kompatibilität mit C#, F# und VB.NET entwickelt und funktioniert nahtlos in verschiedenen .NET-Umgebungen, einschließlich der Versionen 8, 7, 6, Core, Standard und Framework.
Nutzung von Tesseract 5
IronOCR macht sich die Leistungsfähigkeit von Tesseract 5 zunutze, das für eine optimale Leistung innerhalb des .NET-Ökosystems zugeschnitten ist.
Zonenbasierte OCR-Fähigkeit
Mit IronOCR können Benutzer bestimmte Bereiche innerhalb von Dokumenten genau definieren und so eine gezielte OCR-Verarbeitung ermöglichen. Diese Funktion verbessert die Genauigkeit und Effizienz, indem sie die Verarbeitungsleistung auf die Bereiche konzentriert, in denen sie am meisten benötigt wird.
Bildvorverarbeitungs-Tools
Die Bibliothek bietet eine Reihe von Funktionen zur Bildvorverarbeitung, wie z. B. De-Skewing und Rauschunterdrückung. Diese Werkzeuge gewährleisten selbst bei unvollkommenen Quellbildern hervorragende Ergebnisse und verbessern so die OCR-Erfahrung insgesamt.
Jetzt werden wir eine Demo-Anwendung entwickeln, die IronOCR zum Lesen von Text aus Bildern verwendet.
Voraussetzungen
Visual Studio: Stellen Sie sicher, dass SieVisual Studio oder einer anderen C#-Entwicklungsumgebung.
NuGet Package Manager: Stellen Sie sicher, dass NuGet vorhanden ist, um Pakete in Ihrem Projekt zu verwalten.
Schritt 1: Erstellen eines neuen C# Projekts in Visual Studio
Lassen Sie uns zunächst eine neue Konsolenanwendung mit Visual Studio erstellen (siehe unten).
Geben Sie unten den Projektnamen und den Standort an.
Wählen Sie die gewünschte .NET-Version für das Projekt aus.
Klicken Sie auf die Schaltfläche Erstellen, um das neue Projekt zu erstellen.
Schritt 2: Installieren Sie die IronOCR-Bibliothek und integrieren Sie sie in Ihr Projekt.
IronOCR finden Sie in derNuGet paketmanager-Konsole wie unten gezeigt. Verwenden Sie den angegebenen Befehl, um das Paket zu installieren.
Suchen Sie mit dem Visual Studio NuGet Package Manager nach IronOCR und installieren Sie es in Ihrem Projektordner.
Nach der Installation ist die Anwendung bereit, folgende Funktionen zu nutzenIronOCR um Text aus Bildern zu lesen.
Schritt 3: Verwenden Sie den IronOCR Tesseract, um Text aus Bildern zu lesen.
IronOCR ist die einzige .NET-Bibliothek, die OCR-Funktionen von Tesseract 5 bietet. Gegenwärtig gilt sie als die anspruchsvollste Tesseract-5-Bibliothek in allen Programmiersprachen. IronOCR integriert Tesseract 5 nahtlos in verschiedene .NET-Umgebungen, darunter Framework, Standard, Core, Xamarin und Mono, und gewährleistet so eine umfassende Unterstützung des gesamten Ökosystems.
Betrachten Sie die folgende Bilddatei als Eingabe. Nun wollen wir sehen, wie man den Text in dieser Bilddatei lesen kann
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
Imports IronOcr
Public Class Program
Public Shared Sub Main(ByVal args() As String)
Dim ocrTesseract = New IronTesseract()
Dim ocrInput As New OcrInput()
ocrInput.LoadImage("sample1.png")
Dim ocrResult = ocrTesseract.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Sub
End Class
$vbLabelText $csharpLabel
Code Erläuterung
Wir beginnen mit der Erstellung von IronTesseract mit der erforderlichen Konfiguration
Dann laden wir das gezeigte Beispielbild in das OcrInput-Objekt
Schließlich lesen wir den Text im Bild und geben ihn auf der Konsole aus
Ausgabe
Schritt 4: Nutzen Sie die IronOCR Advance-Funktionen, um den Text in Bildern zu lesen
Das IronTesseract.Configuration-Objekt bietet fortgeschrittenen Anwendern Zugriff auf die zugrundeliegende Tesseract-API in C#/.NET und ermöglicht eine detaillierte Konfiguration der Einstellungen zur Feinabstimmung und Optimierung. Im Folgenden finden Sie einige der möglichen erweiterten Konfigurationen
Sprachauswahl
Mit der Eigenschaft Sprache können Sie die Sprache für die OCR festlegen. Um zum Beispiel die Sprache auf Englisch einzustellen, verwenden Sie:
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
$vbLabelText $csharpLabel
Seitensegmentierungsmodus
Der PageSegmentationMode bestimmt, wie Tesseract das Eingabebild segmentiert. Zu den Optionen gehören AutoOsd, SingleBlock, SingleLine und weitere. Zum Beispiel:
Versuchen wir nun, das gleiche Bild mit erweiterten Einstellungen zu dekodieren
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Code Erläuterung
IronOCR-Konfiguration: Eine Instanz von IronTesseract(die IronOCR-Hauptklasse) wird erstellt und der Variablen ocrTesseract zugewiesen.
Die Konfigurationseinstellungen werden auf ocrTesseract angewendet:
Sprache: Legt die Sprache für die OCR fest(in diesem Fall: Englisch).
Konfiguration: Ein TesseractConfiguration-Objekt, das weitere Anpassungen ermöglicht:
Barcodes lesen: Deaktiviert das Lesen von Barcodes.
BlackListCharacters: Gibt die zu sperrenden Zeichen an(zeichen nicht zu erkennen).
WhiteListCharacters: Keine Whitelist angegeben, alle Zeichen erlaubt.
PageSegmentationMode: Setzt den Seitensegmentierungsmodus auf "AutoOsd"
TesseractVariablen: Es wurden keine benutzerdefinierten Variablen verwendet.
MultiThreaded: Deaktiviert Multithreading.
OCR-Eingabe und Laden von Bildern: Ein using-Block erzeugt ein ocrInput-Objekt vom Typ OcrInput. Die Bilddatei "sample1.png" wird zu ocrInput hinzugefügt.
Textextraktion: Die Read-Methode wird auf ocrTesseract aufgerufen, wobei ocrInput übergeben wird.
Das Ergebnis wird in der Variablen ocrResult gespeichert.
Ausgabe: Der extrahierte Text wird mit Console.WriteLine auf der Konsole ausgegeben(ocrResult.Text).
Ausgabe
Schritt 5: Leistungsoptimierung der IronOCR Leseoperation.
Bei der Arbeit mit IronOCR haben Sie Zugriff auf verschiedene Bildfilter, mit denen Sie Bilder vor der OCR vorverarbeiten können. Diese Filter optimieren die Bildqualität, verbessern die Sichtbarkeit und reduzieren Rauschen oder Artefakte. Sie tragen dazu bei, die Leistung der OCR-Operation zu verbessern.
Rotate:
Mit dem Filter Drehen können Sie Bilder um eine bestimmte Anzahl von Grad im Uhrzeigersinn drehen. Für eine Drehung gegen den Uhrzeigersinn verwenden Sie negative Zahlen.
*Deskew:
Der Deskew-Filter korrigiert die Schräglage des Bildes und sorgt dafür, dass der Text aufrecht und orthogonal ist. Dies ist besonders nützlich für OCR, da Tesseract am besten mit korrekt ausgerichteten Scans funktioniert.
Maßstab:
Der Skalierungsfilter skaliert OCR-Eingabeseiten proportional.
Binarisieren:
Der Binarisierungsfilter wandelt jedes Pixel entweder in Schwarz oder Weiß um, ohne einen Mittelweg zu finden. Sie kann die OCR-Leistung in Fällen mit sehr geringem Kontrast zwischen Text und Hintergrund verbessern.
ToGrayScale:
Der Filter ToGrayScale wandelt jedes Pixel in einen Graustufenwert um. Es ist zwar unwahrscheinlich, dass sich dadurch die OCR-Genauigkeit signifikant verbessert, aber es kann die Geschwindigkeit erhöhen.
Invert:
Der Filter "Invertieren" kehrt die Farben um - aus Weiß wird Schwarz und aus Schwarz wird Weiß.
ReplaceColor:
Der ReplaceColor-Filter ersetzt eine bestimmte Farbe innerhalb eines Bildes durch eine andere Farbe unter Berücksichtigung eines bestimmten Schwellenwertes.
Kontrast:
Der Kontrastfilter erhöht automatisch den Kontrast. Er verbessert oft die OCR-Geschwindigkeit und -Genauigkeit bei kontrastarmen Scans.
Dilate und Erode:
Diese fortschrittlichen Morphologiefilter manipulieren Objektgrenzen in einem Bild.
Dilate fügt Pixel zu den Objektgrenzen hinzu.
Erode entfernt Pixel von Objektgrenzen.
Schärfen:
Der Filter Scharfzeichnen schärft unscharfe OCR-Dokumente und reduziert Alphakanäle auf Weiß.
DeNoise:
Der DeNoise-Filter beseitigt digitales Rauschen. Verwenden Sie ihn dort, wo Rauschen zu erwarten ist.
DeepCleanBackgroundNoise:
Dieser Filter zur Entfernung von starkem Hintergrundrauschen sollte nur verwendet werden, wenn extremes Hintergrundrauschen in den Dokumenten bekannt ist. Es kann die OCR-Genauigkeit für saubere Dokumente verringern und ist CPU-intensiv.
EnhanceResolution:
Der Filter EnhanceResolution verbessert die Auflösung von Bildern geringer Qualität. Aufgrund der automatischen Auflösungsbehandlung ist dies nicht oft erforderlich.
Hier ist ein Beispiel für die Anwendung von Filtern mit IronOCR in C#:
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Dim ocr = New IronTesseract()
Dim input = New OcrInput()
input.LoadImage("sample.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
$vbLabelText $csharpLabel
Gemeinsame OCR-Anwendungen
Dokumentendigitalisierung: OCR wird häufig verwendet, um gescannte Papierdokumente wie Rechnungen, Quittungen, Formulare und Verträge in digitale Formate umzuwandeln. Dieser Digitalisierungsprozess rationalisiert die Speicherung, den Abruf und die Verwaltung von Dokumenten, reduziert die Papierflut und verbessert die Effizienz.
Datenextraktion: OCR ermöglicht die Extraktion von Text und Daten aus gescannten Dokumenten, Bildern und PDFs. Diese extrahierten Daten können für die automatische Dateneingabe, die Inhaltsanalyse, die Indexierung und die Integration in Datenbanken oder Geschäftssysteme verwendet werden.
Texterkennung in Bildern: OCR-Technologie ermöglicht das Extrahieren von Text aus gedruckten Dokumenten und Bildern für Indexierungs- und Suchzwecke. Diese Fähigkeit wird in verschiedenen Anwendungen genutzt, darunter Augmented Reality, bildbasierte Suchmaschinen und Übersetzungsdienste.
**Automatische Nummernschild-Erkennung(ALPR)aLPR-Systeme nutzen OCR, um Nummernschilder aus Bildern oder Videoströmen zu lesen, die von Kameras zur Verkehrsüberwachung, Parkraumbewirtschaftung, Mauterhebung und Strafverfolgung aufgenommen wurden.
Barrierefreie Lösungen: OCR spielt eine entscheidende Rolle bei der Erstellung barrierefreier Inhalte für Menschen mit Sehbehinderungen. Durch die Umwandlung von Text aus Bildern oder Dokumenten in Sprache oder Blindenschrift hilft OCR, Informationen für Menschen mit Behinderungen zugänglich zu machen.
Identitätsprüfung: OCR-Technologie wird bei der Identitätsprüfung eingesetzt, z. B. beim Scannen und Verarbeiten von Identitätsdokumenten wie Pässen, Führerscheinen und Personalausweisen. Es hilft bei der Überprüfung der Echtheit von Dokumenten und bei der Extraktion relevanter Informationen für die Identitätsprüfung.
Bank- und Finanzwesen: OCR wird im Bank- und Finanzwesen für Aufgaben wie das Lesen von Schecks, die Verarbeitung von Rechnungen, die Konvertierung eines vorhandenen PDF-Dokuments, die Extraktion von Daten aus Finanzausweisen und die Automatisierung dokumentenbasierter Arbeitsabläufe eingesetzt, um die Genauigkeit und Effizienz von Finanzvorgängen zu verbessern.
Automatisierte Übersetzung: Die OCR-Technologie ist in Übersetzungstools und Sprachlern-Apps integriert, um gedruckten Text von einer Sprache in eine andere zu konvertieren. Die Benutzer können den Text mit ihren Geräten erfassen, und die OCR hilft bei der Übersetzung in die gewünschte Sprache in Echtzeit.
Archival and Historical Document Preservation: OCR wird bei der Digitalisierung von Archivmaterial und historischen Dokumenten eingesetzt, um diese in digitalen Formaten für den zukünftigen Zugang, die Forschung und die Analyse zu bewahren und gleichzeitig den Erhalt des wertvollen kulturellen Erbes zu gewährleisten.
Lizenzanforderungen
IronOCR. Geben Sie die folgenden Details an, um den Schlüssel an Ihre E-Mail-ID zu erhalten
Sobald Sie den Schlüssel entweder durch Kauf oder durch eine kostenlose Testversion erhalten haben, führen Sie die folgenden Schritte aus, um den Schlüssel zu verwenden
Einstellen Ihres Lizenzschlüssels: Stellen Sie Ihren IronOCR-Lizenzschlüssel mit Hilfe des Codes ein. Fügen Sie die folgende Zeile in den Startvorgang Ihrer Anwendung ein(vor der Verwendung von IronOCR):
Global Application Key(Web.Config oder App.Config): Um einen Schlüssel global in Ihrer Anwendung anzuwenden, verwenden Sie die Konfigurationsdatei(Web.Config oder App.Config). Fügen Sie den folgenden Schlüssel zu Ihren appSettings hinzu:
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<configuration> <!-- Other settings -- > <appSettings> <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/> </appSettings> </configuration>
$vbLabelText $csharpLabel
Verwendung von .NET Core appsettings.json: Für .NET Core-Anwendungen erstellen Sie eine appsettings.json-Datei im Stammverzeichnis Ihres Projekts. Ersetzen Sie den Schlüssel "IronOcr.LicenseKey" durch Ihren Lizenzwert:
Testen Sie Ihren Lizenzschlüssel: Überprüfen Sie, ob Ihr Schlüssel korrekt installiert wurde, indem Sie ihn testen:
bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
Dim result As Boolean = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01")
$vbLabelText $csharpLabel
Schlussfolgerung
Zusammengefasst,IronOCR, die bei $749 beginnt. Nutzen Sie die Kraft von OCR mitIronOCR und erschließen Sie sich eine Welt voller Möglichkeiten für Ihre C#-Projekte.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.
< PREVIOUS OCR der Fahrzeugzulassung in C# durchführen
NÄCHSTES > Lesen von Identitätsdokumenten mit OCR in C#