Bildausrichtung für Texterkennung korrigieren – IronOCR Bild zu Text C
IronOCR behebt Bildausrichtungsprobleme durch Rotation, Schräglagenkorrektur und Skalierungsmethoden. Verknüpfen Sie diese Transformationen, um gekippte Scans und falsch ausgerichtete Dokumente zu korrigieren und eine genaue Texterkennung in Ihren .NET-Anwendungen zu gewährleisten.
Schnellstart: Drehen, Schreibtisch verzerren, Skalieren in einer Zeile
Verketten Sie die OcrInput Methoden von IronOCR, um Ihr Bild in einem einzigen Aufruf zu drehen, zu entzerren und zu skalieren – bereiten Sie Bilder für eine genaue OCR ohne Boilerplate-Code vor.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
var result = new IronOcr.OcrInput().LoadImage("skewed.png").Rotate(90).Deskew(45).Scale(150).Let(input => new IronOcr.IronTesseract().Read(input)); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Herunterladen einer C#-Bibliothek zur Korrektur der Bildausrichtung
- Importieren Sie das PDF-Dokument und die Bilder zum Lesen
- Wenden Sie die gewünschte Ausrichtungskorrektur an, wie z.B. Rotation, Entzerrung und Skalierung
- Exportieren Sie das korrigierte Bild zur Ansicht
- Verwendung der Methode `Lesen` für die OCR-Verarbeitung
Wie drehe ich Bilder in IronOCR?
Durch Drehen wird die Bildausrichtung um einen bestimmten Winkel verändert, um sicherzustellen, dass der Text aufrecht und korrekt ausgerichtet ist. Dies korrigiert gescannte Dokumente, die falsch auf Scannern platziert wurden, oder Fotos, die aus ungünstigen Winkeln aufgenommen wurden.
Übergeben Sie einen Gradwert an die Methode Rotate. Positive Werte drehen sich im Uhrzeigersinn, negative Werte drehen sich gegen den Uhrzeigersinn. Die Drehung erfolgt um den Bildmittelpunkt, wobei die ursprünglichen Abmessungen beibehalten und die Ausrichtung des Inhalts angepasst wird.
Wann sollte ich die Bilddrehung verwenden?
Die Bilddrehung korrigiert Dokumente, die in falschen Ausrichtungen gescannt oder fotografiert wurden. Häufige Szenarien sind:
- Auf dem Kopf oder seitwärts gescannte Dokumente
- Mobile Fotos, die eine Änderung der Ausrichtung erfordern
- Mehrseitige Dokumente mit inkonsistenter Seitenausrichtung
- Historische Archive mit unterschiedlichen Scan-Standards
- Pass-Scanning, wobei die Ausrichtung variiert
- Kennzeichenerkennung aus verschiedenen Kamerawinkeln
Zur automatischen Rotationserkennung verwenden Sie die DetectPageOrientation-Methode von IronOCR, die die korrekte Ausrichtung durch Textanalyse ermittelt.
Welche Gradzahlen sind am besten geeignet?
Übliche Drehwerte sind Vielfache von 90 Grad (90, 180, 270) für Standardausrichtungen. IronOCR unterstützt jeden Gradwert für Feineinstellungen:
- 90/-270 Grad: Umwandlung von Hoch- in Querformat
- 180 Grad: Auf den Kopf gestellte Dokumente
- 270/-90 Grad: Umwandlung von Hoch- in Querformat
- Kleine Winkel (1-10 Grad): Geringfügige Anpassungen, wobei Deskewing bei leichten Neigungen oft besser funktioniert
Bei gescannten Dokumenten von älteren Geräten sollte die Rotation mit anderen Vorverarbeitungsschritten kombiniert werden.
Wie wirkt sich Rotation auf die OCR-Genauigkeit aus?
Eine korrekte Rotation ist für die OCR-Genauigkeit entscheidend. Die Tesseract 5-Engine von IronOCR erwartet einen Textfluss von links nach rechts und von oben nach unten. Falsch ausgerichteter Text verursacht:
- Falsche Erkennung von Zeichen
- Falsche Wortgrenzen
- Fehlerhafte Absatzerkennung
- Schlechte Mehrsprachen-Dokumente Leistung
- Reduzierte Konfidenzwerte in den Ergebnissen
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("paragraph_skewed.png")
' Rotate the image 180 degrees clockwise
imageInput.Rotate(180)
' Export the modified image
imageInput.SaveAsImages("rotate")
Exportieren Sie geänderte Bilder mit der Methode SaveAsImages. Unten sehen Sie das Bild vor und nach der Drehung.
Vorher
Nachher
Wie kann ich gekippte Bilder entzerren?
Deskewing begradigt gekippte oder schiefe Bilder und korrigiert die Schräglage, um eine horizontale Textausrichtung zu gewährleisten. Damit werden Dokumente korrigiert, die schief auf Scannern liegen, oder Fotos, die in einem leichten Winkel aufgenommen wurden.
Wenden Sie die Entzerrung mit der Methode Deskew an. Übergeben Sie eine ganze Zahl, die den maximalen zu korrigierenden Schrägstellungswinkel angibt. Höhere Werte ermöglichen mehr Korrekturen, verlangsamen aber die Verarbeitung und bergen das Risiko von Fehlern wie auf dem Kopf stehenden Seiten. Der Standardwert von maximal 15 Grad ist für die meisten Szenarien geeignet.
Welche Winkelwerte sollte ich für Deskewing verwenden?
Die optimalen Schräglagenwinkel hängen von der Qualität des Dokuments und den Anforderungen ab:
- Standard (kein Parameter): Automatische Erkennung für die meisten Dokumente
- 5-15 Grad: Leicht geneigte Scans, die ein Gleichgewicht zwischen Genauigkeit und Geschwindigkeit herstellen
- 15-30 Grad: Stark verdrehte Dokumente; drehung bei Winkeln über 20 Grad berücksichtigen
- 30+ Grad: Kann überkorrigiert werden; verwenden Sie stattdessen Bildfilter
Bei stark verzerrten Dokumenten kombinieren Sie die Entzerrung mit Bildoptimierungsfiltern. Der Filter-Assistent kann bei der Ermittlung der optimalen Vorverarbeitungsschritte helfen.
Wann ist Deskewing am effektivsten?
Deskewing funktioniert am besten bei:
- Textlastige Dokumente mit klaren horizontalen Linien
- Formulare und strukturierte Dokumente
- Gescannte Seiten aus Büchern oder Zeitschriften
- Mehrseitige TIFF-Dateien mit konsistenter Schräglage
- Finanzdokumente, die ein präzises Alignment erfordern
Weniger effektiv für:
- Handgeschriebener Text mit unregelmäßigen Grundlinien
- Bilder mit verschiedenen Textausrichtungen
- Dokumente mit umfangreichen Grafiken oder Tabellen
- Screenshots, die bereits richtig ausgerichtet sind
Wie kann ich Probleme mit Überkorrekturen vermeiden?
Verhindern Sie Probleme mit dem Geraderücken durch:
- Beginnend mit konservativen Winkelgrenzen (10-15 Grad)
- Verwendung von OcrResult confidence scores zur Validierung von Korrekturen
- Geraderücken nach der Rotation für zusammengesetzte Ausgaben anwenden
- Testen von Beispieldokumenten vor der Stapelverarbeitung
- Verwendung der Fortschrittsverfolgung für große Stapel
- Implementierung von Abbruch-Tokens für langlaufende Operationen
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("paragraph_skewed.png")
' Rotate the image 180 degrees clockwise
imageInput.Rotate(180)
' Export the modified image
imageInput.SaveAsImages("rotate")
Vorher
Nachher
Wie skaliere ich Bilder für eine bessere OCR?
Die Skalierung ändert die Größe der Bilder, um die Abmessungen für eine einheitliche Texterkennung zu standardisieren. Die richtige Skalierung stellt sicher, dass der Text weder zu klein ist, um genau erkannt zu werden, noch zu groß, um effizient verarbeitet zu werden.
Wenden Sie die Skalierung mit der Scale Methode unter Verwendung eines Prozentwerts an (100% bedeutet keine Auswirkung). Der zweite Parameter, ScaleCropArea, bestimmt, ob die Anbauflächen proportional skaliert werden (empfohlen auf 'true'). Bei der Skalierung wird das Seitenverhältnis beibehalten, um Textverzerrungen zu vermeiden.
Was sind die optimalen Skalierungsprozentsätze?
Die optimale Skalierung hängt von der Quellauflösung und den OCR-Anforderungen ab:
- 50-80%: Hochauflösende Scans (600+ DPI) für schnellere Verarbeitung
- 100%: Keine Skalierung, Originalabmessungen
- 120-150%: Niedrig aufgelöste Bilder zur Verbesserung der Zeichenerkennung
- 200%+: Sehr kleiner Text, obwohl DPI-Einstellungen möglicherweise besser funktionieren
Eine Texthöhe von 20-30 Pixeln ist für ein optimales Ergebnis anzustreben. Eine ausführliche Anleitung zur Auflösungsoptimierung finden Sie unter Optimierung der Bild-DPI für Tesseract.
Wie wirkt sich die Skalierung auf die OCR-Leistung aus?
Die Skalierung wirkt sich auf Genauigkeit und Geschwindigkeit aus:
- Abwärtsskalierung (unter 100 %): Schnellere Verarbeitung, aber möglicherweise gehen feine Details verloren
- Hochskalierung (über 100%): Bessere Genauigkeit bei kleinen Texten, aber langsamere Verarbeitung
- Speicherverbrauch: Skaliert quadratisch mit der Bildgröße
- Bearbeitungszeit: Erhöht sich mit größeren Dimensionen
Zur Leistungsoptimierung siehe schnelle OCR-Konfiguration und Multithreading für Geschwindigkeit.
Wann sollte ich ScaleCropArea verwenden?
Verwenden Sie ScaleCropArea, wenn:
- Arbeiten mit bestimmten Bildregionen
- Verarbeitung von Formularen mit definierten Feldern
- Extrahieren von Identitätsdokument-Daten
- Beibehaltung von Positionen für Barcode-Lesen
- Lesen von MICR-Schecks mit bestimmten Zonen
Stellen Sie den Wert auf true ein, es sei denn, Sie benötigen die ursprünglichen Zuschnittkoordinaten.
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("paragraph_skewed.png")
' Rotate the image 180 degrees clockwise
imageInput.Rotate(180)
' Export the modified image
imageInput.SaveAsImages("rotate")
Wie lassen sich verschiedene Skalenwerte vergleichen?
Der folgende Vergleich zeigt, wie sich die Skalierung auf die Dimensionen und die Klarheit des Textes auswirkt. Eine moderate Skalierung erhält die Lesbarkeit bei gleichzeitiger Anpassung der Verarbeitungsanforderungen:
Was sind die besten Praktiken für kombinierte Korrekturen?
Wenden Sie die Korrekturen in dieser Reihenfolge an, um optimale Ergebnisse zu erzielen:
- Rotation zuerst für größere Orientierungsprobleme
- Deskewing zur Feinabstimmung des Alignments
- Skalierung zur Optimierung der OCR-Verarbeitung
Diese Reihenfolge stellt sicher, dass jede Korrektur auf der vorhergehenden aufbaut, ohne dass sich Fehler häufen. Für komplexe Verarbeitungsanforderungen können Sie IronOCRs umfassende Bildfilter und Bildqualitätskorrekturwerkzeuge nutzen.
Wie kombiniere ich alle Ausrichtungskorrekturen?
Verketten Sie mehrere Korrekturen für eine umfassende Bildvorbereitung:
/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;
// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();
// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");
// Apply corrections in optimal sequence
imageInput
.Rotate(90) // Fix major orientation
.Deskew(15) // Correct minor tilts
.Scale(150, true); // Enhance for OCR
// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);
// Access extracted text
string extractedText = result.Text;
/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;
// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();
// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");
// Apply corrections in optimal sequence
imageInput
.Rotate(90) // Fix major orientation
.Deskew(15) // Correct minor tilts
.Scale(150, true); // Enhance for OCR
// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);
// Access extracted text
string extractedText = result.Text;
Imports IronOcr
' Create OCR engine with optimized configuration
Dim ocrTesseract As New IronTesseract()
' Load and process image with all corrections
Using imageInput As New OcrImageInput("skewed_document.png")
' Apply corrections in optimal sequence
imageInput _
.Rotate(90) _ ' Fix major orientation
.Deskew(15) _ ' Correct minor tilts
.Scale(150, True) ' Enhance for OCR
' Perform OCR on corrected image
Dim result As OcrResult = ocrTesseract.Read(imageInput)
' Access extracted text
Dim extractedText As String = result.Text
End Using
Welche zusätzlichen Vorverarbeitungen verbessern die Ergebnisse?
Neben der Orientierungskorrektur sind auch diese Verbesserungen zu berücksichtigen:
- Farbkorrektur für verblasste Dokumente
- Qualitätsfilter zur Rauschunterdrückung
- Computer Vision für die Textsuche
- Highlight Text-Debugging zur Überprüfung von Korrekturen
Implementieren Sie für die Stapelverarbeitung async-Unterstützung, um mehrere Dokumente effizient zu verarbeiten. Überwachen Sie die Verarbeitung mit Timeouts für große Operationen.
Wie kann ich korrigierte Bilder exportieren?
Exportieren Sie die verarbeiteten Bilder zur Überprüfung oder weiteren Verwendung:
- Einzelbilder:
SaveAsImages()Methode - Durchsuchbare PDFs mit eingebettetem Text
- hOCR HTML-Export für die Webintegration
- PDF-Streams für Cloud-Speicher
Testen Sie Korrekturen mit einfacher einzeiliger OCR, bevor Sie komplexe Arbeitsabläufe implementieren.
Häufig gestellte Fragen
Wie kann ich gekippte oder schiefe Bilder vor der OCR-Verarbeitung korrigieren?
IronOCR bietet eine leistungsstarke Bildorientierungskorrektur durch seine OcrInput-Klasse. Sie können Methoden wie Rotate(), Deskew() und Scale() verketten, um gekippte Scans, auf dem Kopf stehende Dokumente und Bilder mit falscher Größe zu korrigieren. Verwenden Sie zum Beispiel input.Rotate(90).Deskew(45).Scale(150), um mehrere Korrekturen in einer Zeile vor der Textextraktion anzuwenden.
Welche Drehwinkel sollte ich für verschiedene Dokumentausrichtungen verwenden?
IronOCR unterstützt jeden beliebigen Rotationswinkel, zu den gängigen Werten gehören jedoch: 90 Grad für die Umwandlung von Quer- in Hochformat, 180 Grad für auf dem Kopf stehende Dokumente und 270 Grad für die Umwandlung von Hoch- in Querformat. Für kleinere Anpassungen (1-10 Grad) sollten Sie stattdessen IronOCRs Deskew()-Methode verwenden, um bessere Ergebnisse bei leicht geneigten Dokumenten zu erzielen.
Kann ich die richtige Ausrichtung meiner Dokumente automatisch erkennen?
Ja, IronOCR enthält eine DetectPageOrientation-Methode, die automatisch die richtige Ausrichtung durch Textanalyse bestimmt. Diese Funktion ist besonders nützlich bei der Verarbeitung von Stapeln von Dokumenten mit uneinheitlichen Ausrichtungen, z. B. bei historischen Archiven oder mehrseitigen Dokumenten aus verschiedenen Quellen.
Wann sollte ich für die Bildkorrektur eine Entzerrung und wann eine Drehung verwenden?
Verwenden Sie die Rotate()-Methode von IronOCR bei größeren Ausrichtungsproblemen (90, 180, 270 Grad), wenn die Dokumente komplett auf der Seite oder auf dem Kopf stehen. Verwenden Sie die Deskew()-Methode für leichte Neigungen und Schrägstellungen, die typischerweise bei gescannten Dokumenten auftreten. Sie können beide Methoden miteinander verknüpfen, um eine umfassende Korrektur schlecht gescannter Bilder zu erreichen.
Wie skaliere ich Bilder für eine bessere OCR-Genauigkeit?
Mit der Scale()-Methode von IronOCR können Sie die Größe von Bildern prozentual ändern. Mit Scale(150) wird die Bildgröße beispielsweise um 50 % erhöht, was die OCR-Genauigkeit bei Scans mit niedriger Auflösung verbessern kann. Dies ist besonders nützlich, wenn es mit Rotation und Schräglagenkorrektur für eine umfassende Bildvorverarbeitung kombiniert wird.

