Wie definiert man einen bestimmten OCR-Bereich eines Bildes in C#35;

This article was translated from English: Does it need improvement?
Translated
View the article in English

Um Text aus einem bestimmten Bereich eines Bildes in C# zu extrahieren, verwenden Sie das Rectangle-Objekt von IronOCR, um den genauen Bereich durch Angabe von x/y-Koordinaten, Breite und Höhe zu definieren, und übergeben Sie ihn dann an die Methode LoadImage zur gezielten OCR-Verarbeitung.

als-Überschrift:2(Schnellstart: Text aus einem bestimmten Bildbereich extrahieren)

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

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

    using IronOcr;
    using IronSoftware.Drawing;
    
    // 1. Install IronOCR via NuGet: Install-Package IronOcr
    var ocr = new IronTesseract();
    using var input = new OcrInput();
    
    // 2. Create a Rectangle with coordinates
    var region = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);
    
    // 3. Load image with region
    input.LoadImage("image.png", region);
    
    // 4. Extract text
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Oftmals genügt es, Text aus einem kleinen Teil eines Bildes zu extrahieren, beispielsweise einen Gesamtbetrag auf einer Rechnung oder ein bestimmtes Feld aus einem Formular. Das Scannen des gesamten Dokuments ist ineffizient und kann zu Fehlern führen, da irrelevanter Text erfasst wird.

Mit IronOCR können Sie Präzision, Leistung und Genauigkeit verbessern, indem Sie den exakten rechteckigen Bereich zum Scannen festlegen. Dieser Leitfaden bietet eine Schritt-für-Schritt-Anleitung, wie Sie einen bestimmten OCR-Bereich definieren, Text daraus extrahieren und visuell überprüfen, ob Ihre Koordinaten für Ihre OCR-Aufgaben korrekt sind.

Erste Schritte mit IronOCR

Nutzen Sie IronOCR heute kostenlos in Ihrem Projekt.

Erster Schritt:
green arrow pointer


Wie führe ich OCR für eine bestimmte Region durch?

Um einen bestimmten OCR-Bereich zu definieren, erstellen Sie ein Rectangle Objekt aus dem Namespace Iron Software.Drawing. Dieses Objekt benötigt vier Werte: die x-Koordinate, die y-Koordinate, die Breite und die Höhe, alle in Pixel. Die Koordinaten (x, y) stellen die linke obere Ecke des gewünschten Bereichs dar.

Wenn Sie Ihr Bild mit LoadImage laden, übergeben Sie dieses Rectangle als zweiten Parameter. IronOCR beschränkt seinen OCR-Prozess dann auf die Pixel innerhalb dieses Begrenzungsrahmens.

Regionale OCR ist besonders nützlich bei der Arbeit mit strukturierten Dokumenten wie Rechnungen, gescannten Formularen oder Ausweisdokumenten, bei denen bestimmte Informationen immer an vorhersehbaren Stellen erscheinen. Indem Sie die OCR auf die relevanten Bereiche beschränken, können Sie die Verarbeitungsgeschwindigkeit deutlich erhöhen und die Zahl der Fehlalarme durch nicht verwandten Text reduzieren.

Um die Koordinaten für Ihr Rechteck zu finden, können Sie einen einfachen Bildeditor wie MS Paint verwenden. Öffnen Sie Ihr Eingabebild, fahren Sie mit der Maus über die linke obere und rechte untere Ecke des angegebenen Bereichs und notieren Sie die (x, y) Pixelkoordinaten. Sie können dann die Eigenschaften des Rechtecks berechnen: (x1, y1, Breite, Höhe), wobei Breite = x2-x1 und Höhe = y2-y1.

Welches Bild sollte ich zum Testen verwenden?

Wir verwenden ein Beispielbild mit drei Absätzen. Unser Ziel ist es, nur den zweiten Absatz zu extrahieren und den restlichen Text zu ignorieren. Dies ist ein Beispiel für ein häufiges Szenario, bei dem Sie bestimmte Felder oder Abschnitte aus einem größeren Dokument extrahieren müssen.

Terminalfenster mit OCR-Ergebnissen, 'Hello World'-Kopfzeile und extrahiertem Text über eine Buchhandlung

Wie implementiere ich regionale OCR in Code?

Die Implementierung umfasst die Erstellung eines OcrInput-Objekts und das Laden Ihres Bildes mit dem angegebenen rechteckigen Bereich. Dieser Ansatz funktioniert mit verschiedenen Bildformaten wie JPG, PNG, GIF, TIFF und BMP.

:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();

// Define the specific region as a Rectangle
// (x, y) is the top-left corner.
var ContentArea = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);

ocrInput.LoadImage("region-input.png", ContentArea);

var ocrResult = ocrTesseract.Read(ocrInput);

// Print the extracted text
Console.WriteLine(ocrResult.Text);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für komplexere Szenarien können Sie mehrere Regionen innerhalb desselben Bildes definieren. Dies ist besonders nützlich bei der Bearbeitung von Formularen mit mehreren Feldern oder Tabellen in Dokumenten:

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Define multiple regions for different form fields
var nameField = new Rectangle(x: 100, y: 200, width: 300, height: 50);
var dateField = new Rectangle(x: 100, y: 300, width: 200, height: 50);
var amountField = new Rectangle(x: 400, y: 500, width: 150, height: 50);

// Load the same image multiple times with different regions
input.LoadImage("form.png", nameField);
var nameResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", dateField);
var dateResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", amountField);
var amountResult = ocr.Read(input);

// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Define multiple regions for different form fields
var nameField = new Rectangle(x: 100, y: 200, width: 300, height: 50);
var dateField = new Rectangle(x: 100, y: 300, width: 200, height: 50);
var amountField = new Rectangle(x: 400, y: 500, width: 150, height: 50);

// Load the same image multiple times with different regions
input.LoadImage("form.png", nameField);
var nameResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", dateField);
var dateResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", amountField);
var amountResult = ocr.Read(input);

// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Welche Ergebnisse kann ich erwarten?

Wie Sie der Konsolenausgabe entnehmen können, wird von der OCR nur der zweite Absatz verarbeitet. Dieser gezielte Ansatz stellt sicher, dass irrelevanter Text aus anderen Teilen des Bildes Ihre Ergebnisse nicht beeinträchtigt.

OCR-Ausgabe

Die Genauigkeit der regionalen OCR hängt von mehreren Faktoren ab:

  • Bildqualität: Bilder mit höherer Auflösung liefern im Allgemeinen bessere Ergebnisse. Erwägen Sie die Verwendung von DPI-Einstellungen zur Optimierung Ihrer Bilder.
  • Textausrichtung: Stellen Sie sicher, dass der Text richtig ausgerichtet ist. Verwenden Sie bei Bedarf die Seitenrotationserkennung.
  • Kontrast und Klarheit: Wenden Sie Bildkorrekturfilter an, um die Lesbarkeit des Textes zu verbessern.

Wie kann ich überprüfen, ob meine Koordinaten korrekt sind?

Um sicherzustellen, dass Sie die richtigen Koordinaten für das Eingabebild ausgewählt haben, können Sie den von Ihnen definierten Inhaltsbereich visualisieren. Eine einfache Möglichkeit, dies zu tun, besteht darin, das Rechteck auf das Eingabebild zu zeichnen und es mit StampCropRectangleAndSaveAs als neue Datei zu speichern. Dies hilft Ihnen, die Koordinaten zu debuggen und für eine optimale Leistung zu optimieren.

Diese Visualisierungstechnik ist besonders hilfreich, wenn Sie mit komplexen Layouts arbeiten oder wenn Sie bestimmte Textbereiche zu Qualitätssicherungszwecken hervorheben müssen.

Hier sehen Sie das Ergebnisbild, nachdem der angegebene Begrenzungsrahmen auf unser obiges Beispielbild gezeichnet wurde.

Wie kann ich die ausgewählte Region visualisieren?

:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image-highlighted.cs
using IronOcr;
using IronSoftware.Drawing;

var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();

// Define the specific rectangular area to scan within the image.
// The coordinates are in pixels: (x, y) is the top-left corner of the rectangle.
var ContentArea = new Rectangle(x: 4, y: 59, width: 365, height: 26);

ocrInput.LoadImage("region-input.png", ContentArea);

var ocrResult = ocrTesseract.Read(ocrInput);

// Draws the rectangle from above in a blue bounding box on the image for visualization.
ocrInput.StampCropRectangleAndSaveAs(ContentArea, Color.Aqua, "region-input.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie sieht die Visualisierung aus?

OCR-hervorgehobene Ausgabe

Das hellblaue Rechteck bestätigt, dass wir den zweiten Absatz korrekt zur Weiterverarbeitung ausgewählt haben.

Wann sollte ich regionale OCR verwenden?

Regionale OCR ist ideal für mehrere gängige Szenarien:

  1. Formularverarbeitung: Beim Extrahieren bestimmter Felder aus standardisierten Formularen, in denen die Daten an einheitlichen Stellen erscheinen.
  2. Rechnungsverarbeitung: Extrahieren bestimmter Werte wie Summen, Daten oder Rechnungsnummern ohne Verarbeitung des gesamten Dokuments.
  3. Lizenzschilder: Konzentrieren Sie sich bei der Kennzeichenerkennung nur auf den Bereich des Kennzeichens.
  4. Ausweisdokumente: Extrahieren Sie bestimmte Felder aus Reisepässen oder Personalausweisen.
  5. Screenshots: Beim Erfassen von Text aus bestimmten UI-Elementen in Screenshots.

Best Practices für regionale OCR

Um optimale Ergebnisse mit regionaler OCR zu erzielen:

  1. Polsterung hinzufügen: Fügen Sie einen kleinen Puffer um Ihren Text ein, um sicherzustellen, dass keine Zeichen an den Rändern abgeschnitten werden.
  2. Testen Sie mit Beispielbildern: Überprüfen Sie Ihre Koordinaten immer mit repräsentativen Beispielen, bevor Sie große Mengen verarbeiten.
  3. Handhaben von Abweichungen: Berücksichtigen Sie leichte Positionsabweichungen in gescannten Dokumenten, indem Sie Ihre Bereiche etwas größer als nötig machen.
  4. Leistungsoptimierung: Verarbeiten Sie bei Multithreading verschiedene Regionen parallel.
  5. Überwachen Sie das Vertrauen: Überprüfen Sie die Ergebniskonfidenzwerte, um die Genauigkeit sicherzustellen.

Indem Sie die OCR-Verarbeitung auf bestimmte Regionen konzentrieren, können Sie sowohl die Geschwindigkeit als auch die Genauigkeit Ihrer Textextraktionsaufgaben erheblich verbessern. Dieser gezielte Ansatz ist für den Aufbau effizienter Dokumentenverarbeitungs-Workflows in Ihren .NET-Anwendungen unerlässlich.

Häufig gestellte Fragen

Wie extrahiere ich in C# Text nur aus einem bestimmten Teil eines Bildes?

Mit IronOCR können Sie Text aus einem bestimmten Bereich extrahieren, indem Sie ein Rectangle-Objekt mit x/y-Koordinaten, Breiten- und Höhenwerten erstellen. Übergeben Sie dieses Rechteck als zweiten Parameter an die LoadImage-Methode, und IronOCR wird seine OCR-Verarbeitung auf diesen definierten Bereich beschränken.

Welche Vorteile bietet die Definition eines OCR-Bereichs anstelle des Scannens des gesamten Bildes?

Durch die Definition eines bestimmten OCR-Bereichs mit IronOCR können Sie die Verarbeitungsgeschwindigkeit erhöhen, die Genauigkeit steigern und Fehler durch die Erfassung von irrelevantem Text reduzieren. Dies ist besonders nützlich für strukturierte Dokumente, in denen Informationen an vorhersehbaren Stellen erscheinen.

Welche Parameter benötige ich, um ein Rechteck für regionale OCR zu erstellen?

Um ein Rechteck für die regionale OCR von IronOCR zu erstellen, benötigen Sie vier Werte in Pixeln: x-Koordinate, y-Koordinate, Breite und Höhe. Die (x, y)-Koordinaten stellen die obere linke Ecke des gewünschten Scanbereichs dar.

Welcher Namespace enthält das Rectangle-Objekt für OCR-Regionen?

Das Rectangle-Objekt, das zur Definition von OCR-Regionen in IronOCR verwendet wird, befindet sich im IronSoftware.Drawing-Namespace.

Welche Arten von Dokumenten profitieren am meisten von der regionalen OCR-Verarbeitung?

Die regionale OCR von IronOCR eignet sich besonders gut für strukturierte Dokumente wie Rechnungen, gescannte Formulare und Identitätsdokumente, in denen bestimmte Informationen immer an denselben Stellen erscheinen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht