IRONSOFTWAREHOME

Wort- und Zeichen-OCR-Daten in C# (Koordinaten, Konfidenz, Begrenzungsrahmen)

Darrius Serrant
Darrius Serrant
Updated: 15. Mai 2026

Nach der OCR-Bearbeitung eines Dokuments reicht der extrahierte Text allein oft nicht aus. Um bestimmte Werte auf einer Seite zu finden, Erkennungen von geringer Qualität auszuschließen oder die natürliche Lesereihenfolge bei mehrspaltigen Layouts wiederherzustellen, benötigen Sie Wortkoordinaten, Seitenzahlen, Bereichsindizes und Konfidenzwerte.

Die Sammlungen Words und Characters auf AdvancedOcrResultBase stellen diese Daten bereit. Sowohl ReadDocumentAdvanced() für layoutbewusste Dokumente als auch ReadPhoto() für Kameraeingaben liefern dieselbe Granularität, die über die Standard-OcrResult.Words-Sammlung verfügbar ist.

Dieser Leitfaden behandelt fünf gängige Muster: Iterieren von WORD-Daten, Rekonstruieren der Lesereihenfolge, Filtern nach Konfidenz, Arbeiten auf Zeichenebene und Zuschneiden des Quellbildes aus einem Begrenzungsrahmen.

Starten Sie eine kostenlose 30-Tage-Testversion, um diese Sammlungen in Ihrer Pipeline zu testen.

NuGetMit NuGet installieren

PM > Install-Package IronOcr

Install IronOCR by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.
Schnellstart: Lesen von WORD- und Zeichendaten aus einem OCR-Ergebnis

Rufen Sie ReadDocumentAdvanced (oder ReadPhoto) auf und iterieren Sie result.Words, um in wenigen Zeilen jedes erkannte WORD mit seinen Koordinaten, der Seitenzahl und dem Konfidenzwert zu erhalten.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var result = new IronTesseract().ReadDocumentAdvanced(new OcrInput("scan.png"));
    foreach (var word in result.Words)
        Console.WriteLine($"{word.Text} @ ({word.X},{word.Y}) conf:{word.RegionConfidence:P0}");
    C#
  3. 3Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
    arrow pointer

Wie iteriert man Wörter mit Koordinaten und Konfidenz?

Die Words-Sammlung gibt jedes erkannte WORD auf jeder Seite zurück. Jeder Eintrag (ein AdvancedWord oder AdvancedCharacter, beide abgeleitet von AdvancedOcrElement) enthält den Text, die Pixelkoordinaten, die Abmessungen, die Seite, zu der er gehört, den Bereichsindex, der angibt, welcher erkannte Textblock ihn enthält, sowie einen Konfidenzwert für diesen Bereich.

using IronOcr;

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

var result = ocr.ReadDocumentAdvanced(input);

foreach (var word in result.Words)
{
    Console.WriteLine(
        $"Page {word.PageNumber} | " +
        $"'{word.Text}' | " +
        $"Position: ({word.X}, {word.Y}) | " +
        $"Size: {word.Width}x{word.Height} | " +
        $"Confidence: {word.Confidence:P1}"
    );
}

// ToString() override for diagnostic logging
Console.WriteLine(result.Words.First().ToString());
C#
Tipps: PageNumber ist 1-basiert: Seite eins ist 1, nicht 0. Dies unterscheidet sich von den meisten .NET-Sammlungen, die eine nullbasierte Indizierung verwenden. RegionIndex folgt der Standardkonvention mit 0 als Startpunkt.

Um Koordinaten an Zeichen- oder Zuschneide-APIs zu übergeben, verwenden Sie die Eigenschaft BoundingBox. Sie fasst Position und Größe in einem einzigen IronSoftware.Drawing.Rectangle zusammen.

Wie stellt man die Lesereihenfolge wieder her?

Bei mehrspaltigen Layouts stimmt die Reihenfolge der Iteration der Words-Sammlung nicht mit der visuellen Lesereihenfolge auf der Seite überein. Wörter werden nach erkannten Regionen gruppiert, sodass Spalten und Tabellenzellen möglicherweise nicht in der richtigen Reihenfolge ausgegeben werden.

Um eine natürliche Reihenfolge von oben nach unten und von links nach rechts wiederherzustellen, sortieren Sie die Sammlung zunächst nach der Y-Koordinate und dann innerhalb jeder Zeile nach der X-Koordinate. Eine geringe Y-Toleranz gruppiert Wörter, die auf derselben Grundlinie liegen.

using IronOcr;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("multi-column-doc.png");

var result = ocr.ReadDocumentAdvanced(input);

int targetPage = 1;
int lineThreshold = 10; // pixel tolerance for grouping same-line words

// Sort by line (Y), then left-to-right (X)
var pageWords = result.Words
    .Where(w => w.PageNumber == targetPage)
    .OrderBy(w => w.Y / lineThreshold)
    .ThenBy(w => w.X)
    .ToList();

foreach (var word in pageWords)
{
    Console.Write($"{word.Text} ");
}
Console.WriteLine();

Passen Sie lineThreshold an Ihr Dokument an: 10–15 Pixel eignen sich für Standardtext in 12 pt bei 300 DPI. Bei größeren Überschriften oder handschriftlichen Eingaben ist eine größere Toleranz angebracht. Dieses Muster ist besonders nützlich auf mehrspaltigen Seiten und innerhalb von Tabellenzellen, wo die Engine jede Spalte oder Zelle als eigenen Bereich erkennt.

Wie filtert man Wörter mit geringer Konfidenz heraus?

Um Erkennungen von geringer Qualität auszuschließen, bevor sie Ihre Datenbank, Ihren Suchindex oder die nachgelagerte Extraktion erreichen, filtern Sie die Sammlung nach RegionConfidence. Die Bewertung reicht von 0,0 bis 1,0, wobei höhere Werte ein größeres Vertrauen in den erkannten Text anzeigen.

using IronOcr;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("noisy-scan.png");

var result = ocr.ReadDocumentAdvanced(input);

double threshold = 0.75;

var highConfidenceWords = result.Words
    .Where(w => w.Confidence >= threshold)
    .ToList();

var lowConfidenceWords = result.Words
    .Where(w => w.Confidence < threshold)
    .ToList();

Console.WriteLine($"Accepted: {highConfidenceWords.Count} words");
Console.WriteLine($"Rejected: {lowConfidenceWords.Count} words");

// Log rejected words for manual review
foreach (var word in lowConfidenceWords)
{
    Console.WriteLine(
        $"  LOW CONF: '{word.Text}' at ({word.X},{word.Y}) — {word.Confidence:P1}"
    );
}
C#

Bei Scans mit unterschiedlicher Qualität (an einigen Stellen klarer Print, an anderen Stellen verschlechterte Abschnitte) verhindert dies, dass Ergebnisse mit geringer Zuverlässigkeit in nachgelagerte Systeme gelangen. Um die Konfidenzwerte im Ausgangstext zu erhöhen, verbessern die Bildvorverarbeitungsfilter (Deskew, DeNoise, Binarize) die Qualität, bevor der Schwellenwert angewendet wird.

Wie iteriert man auf Zeichenebene?

Verwenden Sie für OCR-Verifizierungsüberlagerungen, Zeichenvergleiche mit der Referenzdatenbank oder präzise räumliche Analysen von Formularfeldern die Sammlung Characters. Sie spiegelt Words wider, wird jedoch in einzelne Zeichen aufgelöst.

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("form-field.png");

var result = ocr.ReadDocumentAdvanced(input);

foreach (var ch in result.Characters)
{
    Console.WriteLine(
        $"'{ch.Text}' | " +
        $"Box: ({ch.X}, {ch.Y}, {ch.Width}, {ch.Height}) | " +
        $"Page {ch.PageNumber}"
    );
}

// ToString() override provides diagnostic-friendly output
Console.WriteLine(result.Characters.First().ToString());
Hinweis:: Sowohl Words als auch Characters werden verzögert berechnet und zwischengespeichert. Der erste Zugriff löst die Berechnung aus; (Bei nachfolgenden Zugriffen wird das zwischengespeicherte Ergebnis zurückgegeben, sodass eine zweite Iteration keine Kosten verursacht.

Wie schneidet man das Originalbild mithilfe einer BoundingBox zu?

Um den visuellen Bereich eines WORDs zur Überprüfung, Annotation oder zum Erstellen von beschrifteten Trainingsdaten zu extrahieren, übergeben Sie die Eigenschaft BoundingBox an AnyBitmap.CropRegion(). Der Begrenzungsrahmen entspricht direkt der Position des WORDs im Quellbild.

using IronOcr;
using IronSoftware.Drawing;

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

var result = ocr.ReadDocumentAdvanced(input);

// Load the original image for cropping
var originalImage = AnyBitmap.FromFile("invoice.png");

// Find a specific word and crop its region
var targetWord = result.Words.FirstOrDefault(w => w.Text == "Total");
if (targetWord != null)
{
    Rectangle cropRect = targetWord.BoundingBox;
    AnyBitmap croppedRegion = originalImage.Clone(cropRect);
    croppedRegion.SaveAs("total-region.png");

    Console.WriteLine(
        $"Cropped '{targetWord.Text}' from " +
        $"({cropRect.X}, {cropRect.Y}, {cropRect.Width}, {cropRect.Height})"
    );
}

Dieses Muster lässt sich auf Massenoperationen skalieren: jedes WORD durchlaufen, jedes Feld zuschneiden und einen beschrifteten Datensatz für das Training benutzerdefinierter Schriftarten oder nachgelagerte ML-Pipelines exportieren. Die Koordinaten beziehen sich auf das Bild nach der Vorverarbeitung; Wenn Filter wie EnhanceResolution die Abmessungen geändert haben, passt der Begrenzungsrahmen zum verarbeiteten Bild, nicht zum Original auf der Festplatte.

Nächste Schritte

Die erweiterte Pipeline bietet dieselben räumlichen Details wie IronTesseract.Read(), zusätzlich mit intelligenter Layout-Unterstützung. Verwandte Themen:

Starten Sie Ihre kostenlose 30-Tage-Testversion oder sehen Sie sich die Lizenzoptionen an.

Häufig gestellte Fragen

Was ist Erweiterte OCR in C#?

Erweiterte OCR in C# bezieht sich auf den Prozess der Verwendung von Optical Character Recognition, um detaillierte Wort- und Zeichendaten einschließlich Koordinaten, Vertrauensniveaus und Begrenzungsrahmen mithilfe der erweiterten Pipeline von IronOCR zu extrahieren.

Wie kann ich Wortdaten mit IronOCR abrufen?

Sie können Wortdaten in IronOCR abrufen, indem Sie die AdvancedWord-Sammlung durchgehen, die detaillierte Informationen über die Position jedes Wortes und den Vertrauenswert im gescannten Dokument bereitstellt.

Welche Bedeutung haben Begrenzungsrahmen in der OCR?

Begrenzungsrahmen sind in der OCR entscheidend, da sie den genauen Ort und die Dimensionen der erkannten Textelemente auf dem gescannten Bild definieren und so eine präzise Textextraktion und Bildmanipulation ermöglichen.

Kann ich OCR-Ergebnisse nach Vertrauenswert filtern?

Ja, mit IronOCR können Sie OCR-Ergebnisse nach Vertrauenswert filtern, um sicherzustellen, dass nur Text mit hoher Erkennungsgenauigkeit für eine weitere Verarbeitung in Betracht gezogen wird.

Wie rekonstruiere ich die Leserichtung in OCR-Ergebnissen?

Die Leserichtung in OCR-Ergebnissen kann rekonstruiert werden, indem die Reihenfolge der von IronOCR bereitgestellten AdvancedWord- und AdvancedCharacter-Objekte analysiert wird, die den natürlichen Lesefluss des Dokuments widerspiegeln.

Ist es möglich, Quellbilder mit IronOCR zuzuschneiden?

Mit IronOCR können Sie Quellbilder basierend auf der Analyse von Textdaten zuschneiden, die die Begrenzungsrahmen und Koordinaten der erkannten Wörter und Zeichen umfassen.

Was sind die AdvancedWord- und AdvancedCharacter-Sammlungen?

Die AdvancedWord- und AdvancedCharacter-Sammlungen in IronOCR sind Datenstrukturen, die detaillierte Informationen über jedes erkannte Wort und Zeichen speichern, einschließlich ihrer Koordinaten, Vertrauenswerte und Begrenzungsrahmen.

Wie handhabt IronOCR die Zeichenerkennung?

IronOCR handhabt die Zeichenerkennung, indem es eine erweiterte Pipeline nutzt, die die Merkmale jedes Zeichens analysiert und detaillierte Daten wie dessen Position, Größe und Erkennungsvertrauen bereitstellt.

Welche Arten von Dokumenten können mit IronOCR bearbeitet werden?

IronOCR kann eine breite Palette von Dokumenttypen bearbeiten, einschließlich PDFs, gescannter Bilder und Fotos, und dabei Textdaten mit hoher Genauigkeit und Detailtreue extrahieren.

How can OCR results be used for custom font training or machine learning?

OCR results, including cropped image regions and labeled datasets derived from bounding boxes, can be used to train custom fonts or feed machine learning pipelines. IronOCR facilitates these processes with its detailed spatial data extraction capabilities.

Darrius Serrant
Full-Stack-Software-Ingenieur (WebOps)

Darrius Serrant hat einen Bachelor-Abschluss in Informatik von der University of Miami und arbeitet als Full-Stack-WebOps-Marketing-Ingenieur bei Iron Software. Seit seiner Jugend vom Programmieren angezogen, sah er die Informatik als sowohl mysteriös als auch zugänglich, was es zum perfekten Medium für Kreativität und Problemlösung machte.

...
Weiterlesen

Bereit anzufangen?

Nuget Downloads 6,236,385Version:2026.9gerade veröffentlicht

Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach "IronOCR"
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows Installer hier herunter.

  1. Laden Sie IronOCR herunter und entpacken Sie es in einem Ordner wie ~/Libs in Ihrem Lösungsverzeichnis.
  2. Klicken Sie im Visual Studio Solution Explorer mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronOCR.dll"

Lizenzen von $999

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.