Zum Fußzeileninhalt springen
VERWENDUNG VON IRONOCR

Wie man OCR in C# GitHub -Projekten mit IronOCR implementiert

Die Suche nach OCR-Lösungen auf GitHub liefert oft fragmentierte Dokumentationen, komplexe Tesseract-Konfigurationen und Projekte, die seit Jahren nicht mehr aktualisiert wurden. Für C#-Entwickler, die eine zuverlässige Textextraktion aus Bildern und PDFs benötigen, kann die Navigation durch das Repository-Ökosystem Stunden in Anspruch nehmen, die besser mit Programmieren verbracht werden könnten. Viele Open-Source-Projekte zur optischen Zeichenerkennung erfordern die manuelle Verwaltung von Binärdateien, das Herunterladen von Tessdata-Dateien und die plattformspezifische Fehlersuche.

Dieses Tutorial zeigt, wie man OCR-Funktionalität in C#-Projekten mit IronOCR implementiert, einer verwalteten Bibliothek, die den bei Tesseract-Wrappern üblichen Konfigurationsaufwand eliminiert. Egal ob es um den Aufbau von Dokumentenverarbeitungspipelines oder die Integration von Texterkennung in bestehende Anwendungen geht, dieser Leitfaden bietet funktionierende Codebeispiele, die für jedes OCR C# GitHub -Projekt geeignet sind.

Wie fange ich mit IronOCR an?

IronOCR ist eine verwaltete .NET-Bibliothek, die über NuGet vertrieben wird und sich daher problemlos in jedes GitHub-Repository integrieren lässt. Im Gegensatz zu Open-Source-Tesseract-OCR-Wrappern, die eine manuelle Verwaltung von Binärdateien und der Tessdata-Konfiguration erfordern, handhabt IronOCR diese Abhängigkeiten intern und funktioniert sofort unter Windows, Linux und macOS.

Die Bibliothek unterhält offizielle Beispiel-Repositories auf GitHub, die Entwickler klonen und referenzieren können. Diese Beispiele veranschaulichen praktische Anwendungen, darunter die Umwandlung von Bildern in Text , die Unterstützung mehrerer Sprachen und die PDF-Verarbeitung. Mitwirkende können Funktionen direkt nach dem Klonen ohne zusätzliche Einrichtung testen.

Um in Visual Studio loszulegen, installieren Sie IronOCR über den NuGet Package Manager:

Install-Package IronOcr
Install-Package IronOcr
SHELL

OCR C# GitHub: Implement Text Recognition with IronOCR: Image 1 - Installation

Nach der Installation enthält dieses Einzelpaket alles, was für OCR-Operationen benötigt wird. Die Bibliothek unterstützt .NET Framework 4.6.2+, .NET Core und .NET 5 bis 10 für maximale Kompatibilität über verschiedene Projekttypen hinweg.

Wie extrahiert man Text aus Bildformaten in C#?

Das folgende Beispiel demonstriert die grundlegende Textextraktion mit der IronOCR-Klasse IronTesseract. Diese OCR-Engine liest verschiedene Bildformate, darunter PNG, JPG, JPEG, BMP, GIF und TIFF:

using IronOcr;

// Initialize the OCR engine
var ocr = new IronTesseract();

// Load and process an image
using var input = new OcrInput("document-scan.png");

// Perform OCR and retrieve results
var result = ocr.Read(input);

// Output the extracted text to console
Console.WriteLine($"Extracted Text:\n{result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;

// Initialize the OCR engine
var ocr = new IronTesseract();

// Load and process an image
using var input = new OcrInput("document-scan.png");

// Perform OCR and retrieve results
var result = ocr.Read(input);

// Output the extracted text to console
Console.WriteLine($"Extracted Text:\n{result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
$vbLabelText   $csharpLabel

Die Klasse IronTesseract dient als primäre OCR-Engine und basiert auf einer optimierten Tesseract 5-Implementierung. Nach dem Erstellen einer Instanz lädt das OcrInput-Objekt das Zielabbild von der Festplatte, einer URL oder einem Byte-Array. Die Methode Read verarbeitet die Eingabe und gibt ein OcrResult zurück, das den extrahierten Klartext sowie einen Konfidenzprozentsatz enthält, der die Erkennungsgenauigkeit angibt. Höhere Konfidenzwerte (über 90 %) weisen in der Regel auf saubere, gut formatierte Quelldokumente hin.

Das Objekt OcrResult ermöglicht den strukturierten Zugriff auf erkannte Inhalte. Über den reinen Text hinaus können Entwickler auf einzelne Wörter, Zeilen, Absätze und Zeichen zugreifen, zusammen mit ihren Positionen und Konfidenzwerten. Jeder Word enthält die Koordinaten des umgebenden Rechtecks ​​und ist daher wertvoll für Anwendungen, die präzise Textpositionsdaten benötigen, wie z. B. Dokumentenannotationen oder die Extraktion von Formularfeldern.

Eingabe

OCR C# GitHub: Implement Text Recognition with IronOCR: Image 2 - Sample Input

Ausgabe

OCR C# GitHub: Implement Text Recognition with IronOCR: Image 3 - Console Output

IronOCR unterstützt außerdem das Laden von Bildern aus Datenströmen und Byte-Arrays, was insbesondere bei Webanwendungen, die Datei-Uploads empfangen, von Vorteil ist. Dies bedeutet, dass die OCR-Verarbeitung vollständig im Arbeitsspeicher erfolgen kann, ohne dass temporäre Dateien auf die Festplatte geschrieben werden müssen. Dadurch wird der Input/Output-Overhead in Umgebungen mit hohem Durchsatz reduziert.

OCR C# GitHub: Implement Text Recognition with IronOCR: Image 4 - Features

Wie kann die Bildvorverarbeitung die Genauigkeit der optischen Zeichenerkennung verbessern?

Gescannte Dokumente kommen oft schief, verrauscht oder in suboptimaler Auflösung an. IronOCR enthält integrierte Vorverarbeitungsfilter , die diese Probleme korrigieren, bevor die OCR-Engine das Bild verarbeitet:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("skewed-receipt.jpg");

// Apply preprocessing filters to enhance scan quality
input.Deskew();                    // Straighten rotated images
input.DeNoise();                   // Remove digital artifacts
input.EnhanceResolution(225);      // Optimize DPI for OCR

var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("skewed-receipt.jpg");

// Apply preprocessing filters to enhance scan quality
input.Deskew();                    // Straighten rotated images
input.DeNoise();                   // Remove digital artifacts
input.EnhanceResolution(225);      // Optimize DPI for OCR

var result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Die Methode Deskew erkennt und korrigiert automatisch Bildrotationen bis zu 15 Grad und bewältigt so den häufigen Fall, dass Seiten leicht außermittig auf dem Scanner platziert sind. Der Filter DeNoise entfernt Flecken und Artefakte, die häufig bei fotografierten Dokumenten oder älteren Scans auftreten. EnhanceResolution skaliert Bilder mit niedriger DPI-Auflösung auf den Bereich von 200-300 DPI hoch, was für die Genauigkeit der optischen Zeichenerkennung optimal ist.

Diese Filter können miteinander verkettet werden und vollständig im Arbeitsspeicher ausgeführt werden, ohne dass temporäre Dateien benötigt werden. In vielen Fällen kann die Anwendung mehrerer Vorverarbeitungsdurchgänge die Ergebnisse der Texterkennung bei Dokumenten mit gravierenden Qualitätsproblemen wie verblasster Tinte, Hintergrundrauschen oder Kameraverzerrungen erheblich verbessern. Die Verbesserung ist am deutlichsten bei Dokumenten zu erkennen, die mit einer Auflösung unter 150 DPI gescannt wurden, oder bei Fotos, die unter ungleichmäßigen Lichtverhältnissen aufgenommen wurden.

Wie verbessert das Zuschneiden von Regionen von Interesse die Leistung?

Bei Dokumenten, bei denen nur ein Teil des Bildes relevanten Text enthält, reduziert die Definition eines Beschnittbereichs sowohl die Verarbeitungszeit als auch das Risiko von Fehlalarmen durch Hintergrundrauschen:

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput("invoice.png");

// Define crop region (x, y, width, height in pixels)
var cropArea = new CropRectangle(50, 100, 600, 300);
input.AddRegion(cropArea);

var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput("invoice.png");

// Define crop region (x, y, width, height in pixels)
var cropArea = new CropRectangle(50, 100, 600, 300);
input.AddRegion(cropArea);

var result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Die gezielte Auswahl eines bestimmten Bereichs ist besonders wertvoll bei der Verarbeitung strukturierter Dokumente wie Rechnungen oder Formulare, bei denen die Textfelder bekannte Positionen einnehmen. Dieser Ansatz kann die OCR-Verarbeitungszeit im Vergleich zur Analyse des gesamten Bildes um 40-70% reduzieren, je nachdem, wie viel des Bildes irrelevant ist.

Können Sie BarCodes und QR-Codes zusammen mit Text extrahieren?

IronOCR kann gleichzeitig Text erkennen und Barcodes innerhalb desselben Dokuments scannen . Diese Doppelfunktion ist wertvoll für die Bearbeitung von Rechnungen, Versandetiketten und Inventardokumenten:

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;  // Enable barcode detection

using var input = new OcrInput("shipping-label.png");
var result = ocr.Read(input);

// Access extracted text
Console.WriteLine($"Text: {result.Text}");

// Access any barcodes found in the image
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"Barcode ({barcode.Format}): {barcode.Value}");
}
using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;  // Enable barcode detection

using var input = new OcrInput("shipping-label.png");
var result = ocr.Read(input);

// Access extracted text
Console.WriteLine($"Text: {result.Text}");

// Access any barcodes found in the image
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"Barcode ({barcode.Format}): {barcode.Value}");
}
$vbLabelText   $csharpLabel

Wenn ReadBarCodes auf true gesetzt wird, wird die Barcode-Erkennung aktiviert, ohne die Verarbeitungszeit wesentlich zu beeinträchtigen. Die Sammlung Barcodes im Ergebnis enthält den Wert und den Formattyp für jeden erkannten Barcode. Unterstützte Formate sind QR-Codes, Code 128, EAN-13, UPC, Data Matrix und PDF417. Diese doppelte Funktionalität macht separate Barcode-Scanbibliotheken beim Verarbeiten von Dokumenten überflüssig, die sowohl lesbaren Text als auch maschinenlesbare Codes enthalten.

Eingabe

OCR C# GitHub: Implement Text Recognition with IronOCR: Image 5 - Example Barcode Image

Ausgabe

OCR C# GitHub: Implement Text Recognition with IronOCR: Image 6 - Console Barcode Text Output

Für Lager- und Logistikanwendungen reduziert die Kombination von Text- und Barcode-Extraktion in einem einzigen Durchgang die API-Aufrufe und vereinfacht die Anwendungsarchitektur. Ein einzelner Read-Vorgang gibt alle erkennbaren Daten aus dem Dokument zurück, egal ob es sich um gedruckten Text, Handschrift oder maschinenlesbare Codes handelt. Die OcrResult.Barcodes-Eigenschaft stellt eine typisierte Sammlung bereit, sodass nachfolgender Code Ergebnisse ohne formatspezifische Parsing-Logik durchlaufen kann.

Wie generiert man durchsuchbare PDFs aus gescannten Bildern?

Durch die Umwandlung gescannter Dokumente in durchsuchbare PDFs werden Textauswahl, Kopieren und Volltextsuche innerhalb von Dokumentenmanagementsystemen ermöglicht. Dies funktioniert mit verschiedenen Bildformaten als Input:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("scanned-contract.tiff");
var result = ocr.Read(input);

// Export as searchable PDF with invisible text layer
result.SaveAsSearchablePdf("contract-searchable.pdf");
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("scanned-contract.tiff");
var result = ocr.Read(input);

// Export as searchable PDF with invisible text layer
result.SaveAsSearchablePdf("contract-searchable.pdf");
$vbLabelText   $csharpLabel

Die Methode SaveAsSearchablePdf bettet eine unsichtbare Textebene ein, die dem erkannten Inhalt entspricht, wodurch das Erscheinungsbild des Originaldokuments erhalten bleibt und gleichzeitig Textoperationen ermöglicht werden. Dadurch entstehen Dokumente, die für Archivierungs- und Dokumentenmanagementsysteme in Enterprise geeignet sind. IronOCR unterstützt außerdem den Export von Ergebnissen im HTML- oder JSON-Format zur Integration in nachgelagerte Systeme.

Bei mehrseitigen Dokumenten verarbeitet IronOCR jede Seite einzeln und fügt die Ergebnisse zu einer einzigen Datei zusammen. TIFF-Dateien mit mehreren Einzelbildern werden automatisch verarbeitet, wodurch die Stapelkonvertierung gescannter Dokumentenarchive unkompliziert wird. Das resultierende PDF bewahrt das visuelle Layout des Originalscans, während die eingebettete Textebene dafür sorgt, dass jede Seite in jedem PDF-Viewer oder jeder Dokumentenverwaltungsplattform vollständig durchsuchbar ist.

Wie verwendet man IronOCR in mehrsprachigen Anwendungen?

IronOCR unterstützt über 125 Sprachen, darunter Englisch, Spanisch, Französisch, Deutsch, Chinesisch, Japanisch, Arabisch und viele andere. Sprachpakete werden über NuGet als separate Pakete installiert, wodurch die Kernbibliothek schlank bleibt:

using IronOcr;

// Install-Package IronOcr.Languages.French
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.French;

using var input = new OcrInput("french-document.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

// Install-Package IronOcr.Languages.French
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.French;

using var input = new OcrInput("french-document.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Für Dokumente, die verschiedene Sprachen auf derselben Seite enthalten, unterstützt IronOCR das gleichzeitige Laden mehrerer Sprachmodelle. Dies ist relevant für internationalisierte Anwendungen, die Dokumente aus verschiedenen Regionen verarbeiten, ohne die Dateien vorher nach Sprache sortieren zu müssen. Jedes Sprachpaket wird zusammen mit der Kernbibliothek gepflegt und unterstützt die gleichen Vorverarbeitungs- und Ausgabefunktionen.

Was sind die besten Praktiken für OCR in GitHub-Projekten?

Bei der Pflege von OCR-Projekten auf GitHub verbessern einige organisatorische Entscheidungen die Benutzerfreundlichkeit für die Mitwirkenden und die langfristige Projektstabilität. Diese Vorgehensweisen gelten unabhängig davon, ob Sie ein kleines Hilfsskript oder einen großen Dokumentenverarbeitungsdienst für Enterprise entwickeln.

Verwenden Sie Git LFS für große Test-Images, um eine unnötige Vergrößerung des Repositorys zu vermeiden. Binäre Assets in der Standard-Git-Historie verlängern die Klonzeiten und erhöhen die Speicherkosten, insbesondere wenn Testdatensätze hochauflösende Scans enthalten. Lizenzschlüssel sollten in Umgebungsvariablen oder GitHub Secrets gespeichert werden, niemals im festgeschriebenen C#-Code; Die Installationsanweisungen finden Sie im Konfigurationsleitfaden für den Lizenzschlüssel .

Fügen Sie Beispielbilder in einen separaten Ordner test-data ein, damit die Mitwirkenden die OCR-Funktionalität überprüfen können, ohne ihre eigenen Dokumente verwenden zu müssen. Dokumentieren Sie die unterstützten Bildformate und .NET Versionsanforderungen in README-Dateien, um Rückfragen beim Einstieg zu vermeiden. Erstellen und führen Sie Tests in CI-Pipelines mithilfe von GitHub Actions aus, um zu bestätigen, dass die Bibliothek in den verschiedenen Zielumgebungen korrekt funktioniert.

Für GitHub Actions-Workflows läuft IronOCR in containerisierten Umgebungen sowohl auf Windows- als auch auf Linux-Systemen. Einzelheiten zur Konfiguration bei der Verwendung von Ubuntu oder anderen Nicht-Windows-Systemen finden Sie im Linux-Bereitstellungsleitfaden .

Was sind Ihre nächsten Schritte?

IronOCR bietet zuverlässige Texterkennung für C# GitHub -Projekte durch eine NuGet-verteilte Bibliothek, die die Tesseract-Konfiguration, Vorverarbeitung, Barcode-Erkennung und Mehrsprachigkeitsunterstützung ohne externe Binärabhängigkeiten übernimmt. Die Codebeispiele in diesem Leitfaden decken die wichtigsten Anwendungsfälle ab: grundlegende Textextraktion, Bildvorverarbeitung, Barcode-Scanning, Erstellung durchsuchbarer PDFs und mehrsprachige Verarbeitung.

Um alle Funktionen kennenzulernen, starten Sie eine kostenlose Testphase ohne Zeitdruck und ohne Kreditkartenanforderung. Wenn Sie bereit für den Produktionseinsatz sind, überprüfen Sie die Lizenzierungsoptionen , die von einzelnen Entwicklern bis hin zu Enterprise -Teams reichen.

Weiterführende Ressourcen zur Erweiterung Ihres Wissens: Wie man in C# Text aus einem Bild liest

OCR C# GitHub: Implement Text Recognition with IronOCR: Image 7 - Licensing

Häufig gestellte Fragen

Was ist IronOCR?

IronOCR ist eine .NET OCR-Bibliothek für C#, die mithilfe einer optimierten Tesseract-5-Engine Text aus Bildern und PDFs extrahiert. Sie wird über NuGet installiert und verwaltet Binärabhängigkeiten intern, sodass keine manuelle Tessdata-Konfiguration erforderlich ist.

Wie installiere ich IronOCR in einem C#-Projekt?

Führen Sie `Install-Package IronOCR in der NuGet -Paket-Manager-Konsole in Visual Studio aus oder suchen Sie über die Benutzeroberfläche des NuGet Paket-Managers nach IronOCR. Das Paket enthält alle erforderlichen Binärdateien für Windows, Linux und macOS.

Funktioniert IronOCR unter Linux für GitHub Actions?

Ja, IronOCR unterstützt Linux-Runner in GitHub Actions. Informationen zu den erforderlichen Paketabhängigkeiten unter Ubuntu und anderen Distributionen finden Sie im Linux-Bereitstellungsleitfaden unter https://ironsoftware.com/csharp/ocr/how-to/linux/.

Kann IronOCR Barcodes und QR-Codes lesen?

Ja. Setzen Sie `ocr.Configuration.ReadBarCodes = true`, bevor Sie `Read()` aufrufen. Die Sammlung `OcrResult.Barcodes` enthält den Wert und den Formattyp für jeden erkannten Code und unterstützt QR, Code 128, EAN-13, UPC, Data Matrix und PDF417.

Wie erstelle ich aus einem gescannten Bild eine durchsuchbare PDF-Datei?

Nach dem Aufruf von `ocr.Read(input)` verwenden Sie `result.SaveAsSearchablePdf("output.pdf")`, um eine PDF-Datei mit einer unsichtbaren Textebene über dem Originalscan zu erstellen. Die Ausgabe eignet sich für Archivierungs- und Dokumentenmanagementsysteme in Unternehmen.

Unterstützt IronOCR neben Englisch auch andere Sprachen?

Ja. IronOCR unterstützt über 125 Sprachen durch spezielle NuGet Sprachpakete. Installieren Sie das gewünschte Sprachpaket (z. B. ` Install-Package IronOCR) und setzen Sie anschließend `ocr.Language = OcrLanguage.French` vor der Verarbeitung.

Wie speichere ich IronOCR Lizenzschlüssel in einem GitHub Repository?

Speichern Sie Lizenzschlüssel in GitHub Secrets und binden Sie diese als Umgebungsvariablen in Ihren GitHub Actions-Workflow ein. Speichern Sie Lizenzschlüsselzeichenfolgen niemals direkt im C#-Code oder in Appsettings-Dateien.

Welche Bildformate unterstützt IronOCR?

IronOCR unterstützt PNG, JPG, JPEG, BMP, GIF, TIFF (einschließlich Mehrbildformate), PDF und weitere gängige Formate. Bilder können über Dateipfade, URLs, Datenströme oder Byte-Arrays geladen werden.

Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an