Comment détecter la rotation de page pour l'OCR en C# | IronOCR

Comment détecter la rotation de page en C# avec IronOCR

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

La méthode DetectPageOrientation d'IronOcr identifie automatiquement les angles de rotation des pages (0°, 90°, 180°, 270°) dans les documents PDF et les images. Il renvoie une propriété RotationAngle pour chaque page, ce qui permet une correction programmatique de l'orientation avec des scores de confiance pour une extraction de texte précise.

La détection de la rotation des pages permet de déterminer si la page d'un document a été tournée dans le sens des aiguilles d'une montre ou dans le sens inverse de 0, 90, 180 ou 270 degrés. Ces informations permettent de s'assurer que les pages sont affichées ou traitées dans leur orientation correcte pour un rendu et une extraction de texte précis.

Démarrage rapide : Utiliser DetectPageOrientation pour identifier la rotation de la page

<TODO : Ajouter une image ici -->

Cet exemple démontre l'utilisation de la fonction DetectPageOrientation d'IronOcr sur un PDF pour accéder à la propriété RotationAngle. Il permet de détecter et de corriger rapidement la rotation des pages avec un minimum de code.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation();
    Console.WriteLine(rotationResults.First().RotationAngle);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Comment détecter la rotation des pages dans mes documents ?

<TODO : Ajouter une image ici -->

Après avoir chargé un document, utilisez la méthode DetectPageOrientation pour identifier la rotation de chaque page. Cette méthode prend en charge les degrés 0, 90, 180 et 270. Pour les images inclinées au-delà de ces rotations standard, utilisez la méthode Deskew des filtres de correction d'image d'IronOCR. Faites ensuite pivoter l'image pour lui redonner son orientation d'origine en utilisant l'angle détecté. Travaillons avec un exemple de PDF.

Veuillez noterCette fonction donne de meilleurs résultats avec des documents au texte dense.

: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

Que signifient les résultats de la détection?

  • Numéro de page : Index de la page basé sur le zéro.
  • RotationAngle : Angle de rotation en degrés. Utilisez la méthode Rotate pour corriger l'orientation.
  • HighConfidence : Niveau de confiance dans le résultat de l'orientation pour le traitement des cas limites.

Quand dois-je utiliser des valeurs de confiance élevées?

La propriété HighConfidence est cruciale pour les documents ambigus ou de faible qualité dans lesquels la détection des rotations peut être incertaine. Les documents contenant des textes épars, des mises en page inhabituelles ou une mauvaise qualité de numérisation obtiennent souvent des scores de confiance plus faibles. Dans ces cas, mettez en œuvre une validation supplémentaire ou appliquez des filtres de correction de la qualité de l'image avant la détection.

Utilisez cette valeur pour mettre en œuvre des stratégies de repli ou une révision manuelle pour les pages dont le niveau de confiance est faible. Par exemple, si le taux de confiance est inférieur à 80 %, traitez la page avec plusieurs orientations et comparez les résultats de l'OCR, ou signalez-la pour qu'elle soit révisée manuellement. Les fonctions de vision par ordinateur d'IronOcr permettent d'identifier plus précisément les régions de texte dans les documents difficiles.

Comment corriger la rotation détectée?

Après avoir identifié l'angle de rotation, utilisez la méthode Rotate sur votre objet OcrInput pour corriger l'orientation avant l'OCR. Cela permet de garantir une précision optimale de la reconnaissance de texte. Pour des corrections d'orientation complètes, voir le guide de correction de l'orientation des images. Voici le processus de correction :

// 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

Pour les documents nécessitant un prétraitement supplémentaire, pensez à la classe OcrInput qui fournit des méthodes de préparation des documents étendues avant le traitement OCR.

Comment puis-je personnaliser la vitesse et la précision de la détection ?

<TODO : Ajouter une image ici -->

La méthode DetectPageOrientation accepte un paramètre facultatif pour contrôler les détails de la détection. En fournissant des OrientationDetectionMode enums, vous pouvez ajuster la vitesse et la précision de la détection en fonction de vos besoins.

Voici comment procéder :

: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

Quel mode de détection dois-je choisir?

Quatre options de vitesse sont disponibles pour OrientationDetectionMode :

AvertissementBalanced, Detailed, et ExtremeDetailed nécessitent le package IronOcr.Extensions.AdvancedScan. Ces options ne sont pas disponibles sur Windows x86 et Mac ARM.

  • Fast : détection à grande vitesse avec une précision moindre. Idéal pour les ébauches ou le traitement en masse où la rapidité est cruciale. Valeur par défaut pour DetectPageOrientation. Traite efficacement des milliers de pages avec la prise en charge du multithreading.
  • Equilibré : Équilibre entre vitesse et précision. La traduction doit être adaptée aux tâches de production. Utilise les capacités d'extension de AdvancedScan pour améliorer la précision tout en maintenant les performances.
  • Détaillé : Vitesse réduite, précision élevée. Ce type de traduction est idéal pour les tâches précises ou critiques, en particulier les documents dont la mise en page est complexe ou dont le contenu est hétérogène.
  • ExtremeDetailed : Vitesse la plus lente, précision la plus élevée. N'utilisez cette option que lorsque Détaillé est insuffisant ou que le texte est fortement incliné et déformé.

Quelles sont les considérations courantes en matière de performances ?

Les performances varient considérablement d'un mode à l'autre. Le mode rapide traite des centaines de pages par minute ; ExtremeDetailed peut prendre quelques secondes par page. Choisissez en fonction des exigences de précision et des contraintes de temps. Pour des performances optimales :

  1. Résolution de l'image : des paramètres DPI plus élevés améliorent la précision mais augmentent le temps de traitement. une résolution de 150 à 300 DPI est généralement suffisante pour la détection des rotations.
  2. Type de document : Les documents à forte densité de texte sont traités plus rapidement et avec plus de précision que les documents à faible densité de texte. Utilisez l'Assistant de filtrage pour optimiser la qualité de l'image avant la détection.
  3. Utilisation des ressources : Surveillez l'utilisation de la mémoire lors du traitement de lots importants. Mettez en œuvre le suivi des progrès pour fournir un retour d'information et gérer les ressources du système.
  4. Traitement parallèle : Pour les opérations en masse, utilisez le multithreading d'IronOCR pour traiter plusieurs documents simultanément tout en préservant la précision.

Comment traiter les documents à orientation mixte?

Pour les documents à orientation mixte, traitez chaque page individuellement avec DetectPageOrientation, puis appliquez des corrections de rotation page par page avant l'OCR. Cela permet de garantir une orientation correcte, quel que soit l'état initial. Voici une approche efficace :

// 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

Pour les scénarios complexes impliquant des documents numérisés de qualité variable ou des TIFF multipages, prétraitez chaque page individuellement pour obtenir des résultats optimaux.

Lors du traitement d'entrées de format mixte, la classe OcrResult Class fournit des informations détaillées sur la page, ce qui permet une gestion sophistiquée des erreurs et des flux de travail de contrôle de la qualité. Pour les environnements de production à haut débit, explorez les options de Configuration rapide de l'OCR afin d'équilibrer vitesse et précision.

Si vous traitez des documents contenant à la fois du texte et des codes-barres, utilisez les fonctionnalités OCR avec lecture de codes-barres et de QR d'IronOcr pour extraire toutes les informations en un seul passage, ce qui améliore l'efficacité.

Questions Fréquemment Posées

Qu'est-ce que la détection de la rotation des pages et pourquoi est-elle importante ?

La détection de la rotation des pages permet de déterminer si la page d'un document a été tournée de 0°, 90°, 180° ou 270° degrés. Cette fonction est essentielle pour qu'IronOcr puisse s'assurer que les pages sont traitées dans leur orientation correcte, ce qui permet une extraction et un rendu précis du texte à partir des PDF et des images.

Comment détecter rapidement la rotation des pages dans un PDF à l'aide de C# ?

Utilisez la méthode DetectPageOrientation d'IronOCR avec un minimum de code : var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation() ; Cela renvoie des informations sur la rotation pour toutes les pages, accessibles par le biais de la propriété RotationAngle.

Quels angles de rotation peuvent être détectés ?

La méthode DetectPageOrientation d'IronOCR peut détecter des rotations standard de 0°, 90°, 180° et 270° degrés. Pour les images inclinées au-delà de ces rotations standard, utilisez la méthode Deskew d'IronOCR à partir des filtres de correction d'image.

Quelles informations DetectPageOrientation renvoie-t-il ?

La méthode renvoie trois propriétés clés pour chaque page : PageNumber (index basé sur zéro), RotationAngle (rotation en degrés à utiliser avec la méthode Rotate d'IronOCR) et HighConfidence (niveau de confiance pour traiter les cas extrêmes).

Quand dois-je utiliser la propriété HighConfidence ?

Utilisez la propriété HighConfidence lorsque vous travaillez avec des documents ambigus ou de faible qualité pour lesquels la détection de la rotation peut être incertaine. Les documents avec un texte clairsemé, une mise en page inhabituelle ou une mauvaise qualité de numérisation renvoient souvent des scores de confiance plus faibles dans IronOcr, ce qui nécessite une validation supplémentaire ou des filtres de correction de la qualité de l'image.

Cette fonctionnalité fonctionne-t-elle mieux avec certains types de documents ?

La fonction DetectPageOrientation d'IronOCR donne de meilleurs résultats avec les documents à forte densité de texte. Pour les documents contenant peu de texte ou des mises en page complexes, envisagez d'appliquer des filtres de correction de la qualité de l'image avant la détection pour obtenir des résultats optimaux.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,299,091 | Version : 2025.12 vient de sortir