Wie man die Seitendrehung für OCR in C# erkennt | IronOCR

How to Detect Page Rotation in C# with IronOCR

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

Die DetectPageOrientation-Methode von IronOCR erkennt automatisch Seitendrehwinkel (0°, 90°, 180°, 270°) in PDF-Dokumenten und Bildern. Es gibt für jede Seite eine RotationAngle-Eigenschaft zurück, die eine programmatische Ausrichtungskorrektur mit Konfidenzwerten für eine genaue Textextraktion ermöglicht.

Die Erkennung der Seitendrehung identifiziert, ob eine Dokumentseite im oder gegen den Uhrzeigersinn um 0, 90, 180 oder 270 Grad gedreht wurde. Diese Informationen stellen sicher, dass die Seiten in der richtigen Ausrichtung angezeigt oder verarbeitet werden, um eine genaue Darstellung und Textextraktion zu gewährleisten.

Schnellstart: Seitenrotation mithilfe von DetectPageOrientation ermitteln

Dieses Beispiel demonstriert die Verwendung von IronOCRs DetectPageOrientation auf einem PDF, um auf die RotationAngle Eigenschaft zuzugreifen. Sie bietet eine schnelle Erkennung und Korrektur von Seitendrehungen mit minimalem Code.

  1. Installieren Sie IronOCR mit NuGet Package Manager

    PM > Install-Package IronOcr
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation();
    Console.WriteLine(rotationResults.First().RotationAngle);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

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

    arrow pointer


Wie kann ich die Seitendrehung in meinen Dokumenten erkennen?

Nach dem Laden eines Dokuments kann mithilfe der Methode DetectPageOrientation die Drehung jeder Seite ermittelt werden. Diese Methode unterstützt 0, 90, 180 und 270 Grad. Für verzerrte Bilder, die über diese Standardrotationen hinausgehen, verwenden Sie die Deskew Methode aus den Bildkorrekturfiltern von IronOCR . Drehen Sie dann das Bild anhand des erkannten Winkels in seine ursprüngliche Ausrichtung zurück. Lassen Sie uns mit einem Beispiel-PDF arbeiten.

Hinweis:Diese Funktion eignet sich am besten für textreiche Dokumente.

:path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation.cs
using IronOcr;
using System;

using var input = new OcrInput();

// Load PDF document
input.LoadPdf("Clockwise90.pdf");

// Detect page rotation
var results = input.DetectPageOrientation();

// Ouput result
foreach(var result in results)
{
    Console.WriteLine(result.PageNumber);
    Console.WriteLine(result.HighConfidence);
    Console.WriteLine(result.RotationAngle);
}
$vbLabelText   $csharpLabel

Was bedeuten die Detektionsergebnisse?

  • PageNumber: Nullbasierter Index der Seite.
  • RotationAngle: Drehwinkel in Grad. Verwenden Sie es zusammen mit der Rotate Methode, um die Ausrichtung zu korrigieren.
  • HighConfidence: Vertrauensniveau des Orientierungsergebnisses für die Behandlung von Randfällen.

Wann sollte ich hohe Konfidenzwerte verwenden?

Die Eigenschaft HighConfidence ist von entscheidender Bedeutung für mehrdeutige oder qualitativ minderwertige Dokumente, bei denen die Rotationserkennung unsicher sein kann. Dokumente mit spärlichem Text, ungewöhnlichen Layouts oder schlechter Scanqualität führen häufig zu niedrigeren Vertrauenswerten. In diesen Fällen sollten Sie eine zusätzliche Validierung durchführen oder Bildqualitätskorrekturfilter vor der Erkennung anwenden.

Verwenden Sie diesen Wert, um Ausweichstrategien oder eine manuelle Überprüfung für Seiten mit geringem Vertrauen zu implementieren. Wenn beispielsweise die Konfidenz unter 80 % fällt, verarbeiten Sie die Seite mit mehreren Ausrichtungen und vergleichen Sie die OCR-Ergebnisse, oder markieren Sie sie für eine manuelle Überprüfung. Die Computer-Vision-Funktionen von IronOCR helfen dabei, Textbereiche in schwierigen Dokumenten genauer zu identifizieren.

Wie korrigiere ich eine erkannte Drehung?

Nachdem Sie den Drehwinkel ermittelt haben, verwenden Sie die Methode Rotate für Ihr OcrInput Objekt, um die Ausrichtung vor der OCR zu korrigieren. Dies gewährleistet eine optimale Texterkennungsgenauigkeit. Umfassende Korrekturen der Ausrichtung finden Sie im Leitfaden zur Korrektur der Bildausrichtung. Hier ist der Korrekturprozess:

// Apply rotation correction based on detection results
if (result.RotationAngle != 0)
{
    input.Rotate(360 - result.RotationAngle); // Rotate back to 0°
}
// Apply rotation correction based on detection results
if (result.RotationAngle != 0)
{
    input.Rotate(360 - result.RotationAngle); // Rotate back to 0°
}
$vbLabelText   $csharpLabel

Für Dokumente, die eine zusätzliche Vorverarbeitung erfordern, empfiehlt sich die OcrInput-Klasse, die umfangreiche Methoden zur Vorbereitung von Dokumenten vor der OCR-Verarbeitung bietet.

Wie kann ich die Erkennungsgeschwindigkeit und -genauigkeit anpassen?

Die Methode DetectPageOrientation akzeptiert einen optionalen Parameter zur Steuerung des Erkennungsdetails. Durch die Bereitstellung von OrientationDetectionMode Enumerationen können Sie die Erkennungsgeschwindigkeit und -genauigkeit an Ihre Anforderungen anpassen.

So setzen Sie es um:

:path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation-advanced.cs
using IronOcr;
using System;

using var input = new OcrInput();

// Load PDF document
input.LoadPdf("Clockwise90.pdf");

// Detect page rotation with Fast mode
var results = input.DetectPageOrientation(OrientationDetectionMode.Fast);

// Ouput result
foreach(var result in results)
{
    Console.WriteLine(result.PageNumber);
    Console.WriteLine(result.HighConfidence);
    Console.WriteLine(result.RotationAngle);
}
$vbLabelText   $csharpLabel

Welchen Erkennungsmodus soll ich wählen?

Für OrientationDetectionMode stehen vier Geschwindigkeitsoptionen zur Verfügung:

Warnung Balanced , Detailed , and ExtremeDetailed require the IronOcr.Extensions.AdvancedScan package. Diese Optionen sind unter Windows x86 und Mac ARM nicht verfügbar.

  • Schnell: Hochgeschwindigkeitserkennung mit geringerer Genauigkeit. Ideal für Entwürfe oder Massenverarbeitung, wo Schnelligkeit entscheidend ist. Standardwert für DetectPageOrientation. Verarbeitet effizient Tausende von Seiten mit Multithreading-Unterstützung.
  • Balanced: Ausgewogene Geschwindigkeit und Genauigkeit. Geeignet für Produktionsaufgaben. Verwendet AdvancedScan-Erweiterungsfunktionen für verbesserte Genauigkeit bei gleichbleibender Leistung.
  • Detailliert: Geringe Geschwindigkeit, hohe Genauigkeit. Am besten geeignet für präzise oder kritische Aufgaben, insbesondere für Dokumente mit komplexem Layout oder gemischtem Inhalt.
  • ExtremeDetailed: Langsamste Geschwindigkeit, höchste Genauigkeit. Nur verwenden, wenn Detailliert nicht ausreicht oder der Text stark verdreht und verzerrt ist.

Was sind allgemeine Leistungsüberlegungen?

Die Leistung variiert je nach Modus erheblich. Der Schnellmodus verarbeitet Hunderte von Seiten pro Minute; ExtremeDetailed kann einige Sekunden pro Seite benötigen. Wählen Sie auf der Grundlage von Genauigkeitsanforderungen und Zeitvorgaben. Für optimale Leistung:

  1. Bildauflösung: Höhere DPI-Einstellungen verbessern die Genauigkeit, erhöhen aber die Verarbeitungszeit. 150-300 DPI reichen in der Regel für die Erkennung von Drehungen aus.
  2. Dokumententyp: Textreiche Dokumente werden schneller und genauer verarbeitet als spärliche Layouts. Verwenden Sie den Filter-Assistenten, um die Bildqualität vor der Erkennung zu optimieren.
  3. Ressourcennutzung: Überwachen Sie die Speichernutzung bei der Verarbeitung großer Stapel. Implementieren Sie Fortschrittsverfolgung, um Feedback zu geben und Systemressourcen zu verwalten.
  4. Parallelverarbeitung: Verwenden Sie für Massenoperationen das Multithreading von IronOCR, um mehrere Dokumente gleichzeitig zu verarbeiten und dabei die Genauigkeit beizubehalten.

Wie gehe ich mit gemischt orientierten Dokumenten um?

Bei Dokumenten mit unterschiedlicher Ausrichtung verarbeiten Sie jede Seite einzeln mit DetectPageOrientation und wenden Sie dann seitenweise Rotationskorrekturen vor der OCR an. Dies gewährleistet eine korrekte Orientierung unabhängig von der Ausgangssituation. Hier ist ein effektiver Ansatz:

// Process each page with individual rotation detection
for (int i = 0; i < results.Count; i++)
{
    var pageResult = results[i];

    // Apply rotation only to pages that need it
    if (pageResult.RotationAngle != 0 && pageResult.HighConfidence)
    {
        // Correct the specific page
        input.Pages[i].Rotate(360 - pageResult.RotationAngle);
    }
}
// Process each page with individual rotation detection
for (int i = 0; i < results.Count; i++)
{
    var pageResult = results[i];

    // Apply rotation only to pages that need it
    if (pageResult.RotationAngle != 0 && pageResult.HighConfidence)
    {
        // Correct the specific page
        input.Pages[i].Rotate(360 - pageResult.RotationAngle);
    }
}
$vbLabelText   $csharpLabel

Bei komplexen Szenarien mit gescannten Dokumenten unterschiedlicher Qualität oder mehrseitigen TIFFs sollte jede Seite einzeln vorverarbeitet werden, um optimale Ergebnisse zu erzielen.

Bei der Verarbeitung von Eingaben in gemischten Formaten liefert die OcrResult-Klasse detaillierte Seiteninformationen, die eine ausgefeilte Fehlerbehandlung und Qualitätskontroll-Workflows ermöglichen. Für Produktionsumgebungen mit hohem Durchsatz sollten Sie die Optionen der Schnellen OCR-Konfiguration erkunden, um ein Gleichgewicht zwischen Geschwindigkeit und Genauigkeit herzustellen.

Bei der Verarbeitung von Dokumenten, die sowohl Text als auch Barcodes enthalten, sollten Sie die IronOCR-Funktionen OCR mit Barcode- und QR-Lesung verwenden, um alle Informationen in einem einzigen Durchgang zu extrahieren und so die Effizienz zu steigern.

Häufig gestellte Fragen

Was ist die Seitendrehungserkennung und warum ist sie wichtig?

Die Erkennung von Seitendrehungen identifiziert, ob eine Dokumentseite um 0°, 90°, 180° oder 270° gedreht wurde. Dies ist für IronOCR von entscheidender Bedeutung, um sicherzustellen, dass die Seiten in ihrer korrekten Ausrichtung verarbeitet werden, was eine genaue Textextraktion und -wiedergabe aus PDFs und Bildern ermöglicht.

Wie kann ich mit C# schnell eine Seitendrehung in einer PDF-Datei erkennen?

Verwenden Sie die Methode DetectPageOrientation von IronOCR mit minimalem Code: var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation(); Dies liefert Rotationsinformationen für alle Seiten, die über die Eigenschaft RotationAngle zugänglich sind.

Welche Drehwinkel können erkannt werden?

Die DetectPageOrientation-Methode von IronOCR kann Standarddrehungen von 0°, 90°, 180° und 270° Grad erkennen. Für schiefe Bilder, die über diese Standarddrehungen hinausgehen, verwenden Sie IronOCRs Deskew-Methode aus den Bildkorrekturfiltern.

Welche Informationen werden von DetectPageOrientation zurückgegeben?

Die Methode gibt drei Schlüsseleigenschaften für jede Seite zurück: PageNumber (nullbasierter Index), RotationAngle (Drehung in Grad zur Verwendung mit der Rotate-Methode von IronOCR) und HighConfidence (Konfidenzniveau zur Behandlung von Randfällen).

Wann sollte ich die Eigenschaft HighConfidence verwenden?

Verwenden Sie die HighConfidence-Eigenschaft, wenn Sie mit mehrdeutigen oder qualitativ minderwertigen Dokumenten arbeiten, bei denen die Erkennung von Drehungen unsicher sein kann. Dokumente mit spärlichem Text, ungewöhnlichen Layouts oder schlechter Scanqualität liefern in IronOCR oft niedrigere Vertrauenswerte und erfordern zusätzliche Validierungs- oder Bildqualitätskorrekturfilter.

Funktioniert diese Funktion am besten bei bestimmten Arten von Dokumenten?

Die Funktion DetectPageOrientation von IronOCR funktioniert am besten bei Dokumenten mit hoher Textdichte. Bei Dokumenten mit wenig Text oder komplexen Layouts sollten Sie die Anwendung von Filtern zur Korrektur der Bildqualität vor der Erkennung in Betracht ziehen, um optimale Ergebnisse zu erzielen.

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
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,556,263 | Version: 2026.3 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronOcr
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihr Bild zu durchsuchbarem Text wird.