Corriger l'orientation d'image pour une reconnaissance de texte OCR précise en C
IronOCR corrige les problèmes d'orientation des images grâce à des méthodes de rotation, de désalignement et de mise à l'échelle. Enchaînez ces transformations pour corriger les scans inclinés, les documents à l'envers et les images de taille inappropriée afin d'obtenir une extraction de texte OCR précise dans vos applications .NET.
Démarrage rapide : Rotation, inclinaison du bureau et mise à l'échelle en une seule ligne
Enchaînez les méthodes OcrInput d'IronOCR pour faire pivoter, redresser et mettre à l'échelle votre image en un seul appel — préparez les images pour une OCR précise sans code répétitif.
-
Installez IronOCR avec le Gestionnaire de Packages NuGet
PM > Install-Package IronOcr -
Copiez et exécutez cet extrait de code.
var result = new IronOcr.OcrInput().LoadImage("skewed.png").Rotate(90).Deskew(45).Scale(150).Let(input => new IronOcr.IronTesseract().Read(input)); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Téléchargez une bibliothèque C# pour corriger l'orientation de l'image
- Importez le document PDF et les images pour la lecture
- Appliquez la correction d'orientation souhaitée, telle que la rotation, le redressement et la mise à l'échelle
- Exportez l'image corrigée pour la visionner
- Utilisez la méthode `Read` pour le traitement OCR
Comment faire pivoter des images dans IronOCR?
La rotation modifie l'orientation de l'image d'un angle spécifique afin de s'assurer que le texte est droit et correctement aligné. Elle corrige les documents numérisés mal placés sur les scanners ou les photos prises sous un angle inapproprié.
Transmettez une valeur de degré à la méthode Rotate. Les valeurs positives tournent dans le sens des aiguilles d'une montre ; les valeurs négatives tournent dans le sens inverse des aiguilles d'une montre. La rotation s'effectue autour du point central de l'image, ce qui permet de conserver les dimensions d'origine tout en ajustant l'orientation du contenu.
Quand dois-je utiliser la rotation d'image?
La rotation d'image corrige les documents scannés ou photographiés dans des orientations incorrectes. Les scénarios les plus courants sont les suivants :
- Documents scannés à l'envers ou de travers
- Photos mobiles nécessitant un changement d'orientation
- Documents de plusieurs pages dont l'orientation est incohérente
- Archives historiques avec différentes normes de numérisation
- Scanner de passeport où l'orientation varie
- La reconnaissance des plaques d'immatriculation sous différents angles de caméra
Pour la détection automatique de la rotation, utilisez la méthode DetectPageOrientation d'IronOCR qui détermine l'orientation correcte grâce à l'analyse du texte.
Quelles sont les valeurs des diplômes qui fonctionnent le mieux?
Les valeurs de rotation courantes sont des multiples de 90 degrés (90, 180, 270) pour les questions d'orientation standard. IronOcr prend en charge n'importe quelle valeur de degré pour les ajustements fins :
- 90/-270 degrés : Conversion du paysage au portrait
- 180 degrés : Documents à l'envers
- 270/-90 degrés : Conversion du portrait au paysage
- Petits angles (1-10 degrés) : Ajustements mineurs, bien que deskewing fonctionne souvent mieux pour de légères inclinaisons
Pour les documents numérisés provenant d'équipements plus anciens, combinez la rotation avec d'autres étapes de prétraitement.
Comment la rotation affecte-t-elle la précision de l'OCR ?
Une rotation correcte est cruciale pour la précision de l'OCR. Le moteur Tesseract 5 d'IronOcr prévoit un flux de texte de gauche à droite et de haut en bas. Le texte mal aligné est à l'origine :
- Mauvaise reconnaissance des caractères
- Limites de mots incorrectes
- Échec de la détection des paragraphes
- Mauvaise performance du document multilingue
- Réduction des scores de confiance dans les résultats (confidence scores)
: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")
Exportez les images modifiées en utilisant la méthode SaveAsImages. L'image ci-dessous est présentée avant et après la rotation.
Avant
Après
Comment redresser des images inclinées?
Le redressement redresse les images inclinées ou de travers, en corrigeant l'inclinaison pour assurer l'alignement horizontal du texte. Cela permet de corriger les documents placés de travers sur les scanners ou les photos prises sous un angle léger.
Appliquez le redressement avec la méthode Deskew. Passez un nombre entier spécifiant l'angle d'inclinaison maximal à corriger. Des valeurs plus élevées permettent davantage de corrections, mais ralentissent le traitement et risquent d'entraîner des erreurs telles que des pages à l'envers. Le maximum de 15 degrés par défaut permet de gérer efficacement la plupart des scénarios.
Quelles valeurs d'angle dois-je utiliser pour le désalignement?
Les angles de désalignement optimaux dépendent de la qualité du document et des exigences :
- Par défaut (aucun paramètre) : Détection automatique pour la plupart des documents
- 5-15 degrés : balayages légèrement inclinés, équilibrant précision et rapidité
- 15-30 degrés : Documents fortement biaisés ; envisager la rotation pour les angles supérieurs à 20 degrés
- 30+ degrés : Risque de surcorrection ; utilisez plutôt des filtres d'images
Pour les documents fortement inclinés, combinez le désalignement avec les filtres d'optimisation d'image. L'Assistant de filtrage peut aider à identifier les étapes de prétraitement optimales.
Quand le désemboutissage est-il le plus efficace?
Le déparasitage fonctionne mieux sur :
- Documents à forte teneur en texte avec des lignes horizontales claires
- Formulaires et documents structurés
- Pages scannées de livres ou de magazines
- Fichiers TIFF multipages avec une inclinaison cohérente
- Documents financiers nécessitant un alignement précis
Moins efficace pour :
- Texte manuscrit avec des lignes de base irrégulières
- Images avec orientations multiples du texte
- Documents contenant de nombreux graphiques ou tableaux
- Captures d'écran déjà correctement alignées
Comment éviter les problèmes de surcorrection?
Prévenez les problèmes de désalignement en :
- Commencer avec des limites d'angle conservatrices (10-15 degrés)
- Utilisation des scores de confiance d'OcrResult pour valider les corrections
- Application du désalignement après la rotation pour les problèmes composés
- Test de documents types avant le traitement par lots
- Utilisation de suivi de l'avancement pour les lots importants
- Mise en œuvre des jetons abort tokens pour les opérations de longue durée
: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")
Avant
Après
Comment mettre à l'échelle des images pour une meilleure OCR?
La mise à l'échelle permet de redimensionner les images afin de normaliser les dimensions pour une reconnaissance cohérente du texte. Une mise à l'échelle appropriée garantit que le texte n'est ni trop petit pour être détecté avec précision, ni trop grand pour être traité efficacement.
Appliquez la mise à l'échelle avec la méthode Scale en utilisant une valeur en pourcentage (100 % signifie aucun effet). Le deuxième paramètre, ScaleCropArea, détermine si les surfaces cultivées sont proportionnelles (recommandé comme 'true'). La mise à l'échelle maintient le rapport d'aspect pour éviter la distorsion du texte.
Quels sont les pourcentages d'échelle optimaux?
La mise à l'échelle optimale dépend de la résolution de la source et des exigences de l'OCR :
- 50-80% : Scans à haute résolution (600+ DPI) pour un traitement plus rapide
- 100% : Pas de mise à l'échelle, dimensions originales
- 120-150%: Images basse résolution pour améliorer la reconnaissance des caractères
- 200%+ : Texte très petit, bien que les paramètres DPI puissent être plus efficaces
La hauteur du texte doit être de 20 à 30 pixels pour obtenir les meilleurs résultats. Voir optimisation du DPI des images pour Tesseract pour des conseils détaillés sur l'optimisation de la résolution.
Quel est l'impact de la mise à l'échelle sur les performances de l'OCR ?
La mise à l'échelle a une incidence sur la précision et la rapidité :
- Downscaling (inférieur à 100 %) : Traitement plus rapide, mais risque de perte de détails fins
- Upscaling (plus de 100 %) : Meilleure précision pour les petits textes, mais traitement plus lent
- Utilisation de la mémoire : elle augmente de façon quadratique avec les dimensions de l'image
- Temps de traitement : augmente avec les grandes dimensions
Pour l'optimisation des performances, voir configuration OCR rapide et multithreading pour la vitesse.
Quand dois-je utiliser ScaleCropArea?
Utilisez ScaleCropArea lorsque :
- Travailler avec des régions d'images spécifiques
- Traitement de formulaires avec des champs définis
- Extraction de données document d'identité
- Maintien des positions pour la lecture des codes-barres
- Lecture de chèques MICR avec des zones spécifiques
Définissez-le sur true sauf si vous avez besoin des coordonnées de recadrage d'origine.
: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")
Comment les différentes valeurs d'échelle se comparent-elles?
La comparaison ci-dessous montre comment la mise à l'échelle affecte les dimensions et la clarté du texte. Une mise à l'échelle modérée permet de maintenir la lisibilité tout en adaptant les exigences de traitement :
Quelles sont les meilleures pratiques pour les corrections combinées?
Appliquez les corrections dans cet ordre pour un résultat optimal :
- Rotation d'abord pour les principaux problèmes d'orientation
- Deskewing pour affiner l'alignement
- Mise à l'échelle pour optimiser le traitement OCR
Cette séquence permet de s'assurer que chaque correction s'appuie sur la précédente sans aggraver les erreurs. Pour les besoins de traitement complexes, explorez les filtres d'image complets d'IronOcr et les outils de correction de la qualité de l'image.
Comment combiner toutes les corrections d'orientation?
Enchaîner plusieurs corrections pour une préparation complète de l'image :
/* :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
Quel prétraitement supplémentaire améliore les résultats ?
Au-delà de la correction de l'orientation, envisagez ces améliorations :
- Correction des couleurs pour les documents décolorés
- Filtres de qualité pour la réduction du bruit
- Vision par ordinateur pour la localisation de texte
- Mettre en évidence le débogage du texte pour vérifier les corrections
Pour le traitement par lots, mettez en œuvre la prise en charge async pour traiter efficacement plusieurs documents. Contrôlez le traitement avec timeouts pour les opérations importantes.
Comment exporter des images corrigées?
Exportez les images traitées à des fins de vérification ou d'utilisation ultérieure :
- Images uniques : méthode
SaveAsImages() - PDF consultables avec texte intégré
- hOCR HTML export pour l'intégration web
- Flux PDF pour le stockage en nuage
Testez les corrections avec une simple OCR d'une ligne avant de mettre en œuvre des flux de travail complexes.
Questions Fréquemment Posées
Comment puis-je corriger des images inclinées ou de travers avant le traitement OCR ?
IronOcr fournit une puissante correction de l'orientation de l'image grâce à sa classe OcrInput. Vous pouvez enchaîner des méthodes telles que Rotate(), Deskew() et Scale() pour corriger les scans inclinés, les documents à l'envers et les images de taille incorrecte. Par exemple, utilisez input.Rotate(90).Deskew(45).Scale(150) pour appliquer plusieurs corrections en une seule ligne avant l'extraction du texte.
Quels angles de rotation dois-je utiliser pour les différentes orientations du document ?
IronOCR prend en charge n'importe quel angle de rotation, mais les valeurs courantes sont les suivantes : 90 degrés pour la conversion de paysage à portrait, 180 degrés pour les documents à l'envers, et 270 degrés pour la conversion de portrait à paysage. Pour des ajustements mineurs (1-10 degrés), envisagez d'utiliser la méthode Deskew() d'IronOCR pour obtenir de meilleurs résultats avec des documents légèrement inclinés.
Puis-je détecter automatiquement l'orientation correcte de mes documents ?
Oui, IronOCR comprend une méthode DetectPageOrientation qui détermine automatiquement l'orientation correcte grâce à l'analyse du texte. Cette fonctionnalité est particulièrement utile lors du traitement de lots de documents dont l'orientation est incohérente, comme les archives historiques ou les documents multipages provenant de diverses sources.
Quand dois-je utiliser le désalignement plutôt que la rotation pour la correction d'une image ?
Utilisez la méthode Rotate() d'IronOcr pour les problèmes d'orientation majeurs (90, 180, 270 degrés) lorsque les documents sont complètement de côté ou à l'envers. Utilisez la méthode Deskew() pour les légères inclinaisons et les biais que l'on trouve généralement dans les documents numérisés. Vous pouvez combiner les deux méthodes pour une correction complète des images numérisées de mauvaise qualité.
Comment mettre à l'échelle des images pour améliorer la précision de l'OCR ?
La méthode Scale() d'IronOCR permet de redimensionner les images en pourcentage. Par exemple, Scale(150) augmente la taille de l'image de 50 %, ce qui peut améliorer la précision de l'OCR pour les scans à faible résolution. Cette méthode est particulièrement utile lorsqu'elle est combinée à la rotation et au désalignement pour un prétraitement complet de l'image.

