Réalignement des images en Python | Correction du biais d'image en Python

Si vous cherchez un moyen d’aligner correctement le contenu incliné des images, alors vous êtes au bon endroit. Dans cet article, nous apprendrons comment effectuer une correction d’inclinaison dans le traitement d’image à l’aide de Python. Nous vous expliquerons les bases de la correction du biais en Python. Nous verrons comment détecter l’inclinaison d’une image, comment calculer l’angle d’inclinaison et comment redresser vos images par programme à l’aide de Python.

Cet article couvre les sujets suivants :

  1. Correction du biais d’image
  2. API de correction d’inclinaison Python
  3. Détection de biais en Python
  4. Correction automatique de l’inclinaison
  5. Désincliner les images manuellement
  6. Correction du biais - Ressources gratuites

Correction du biais d’image

La correction d’inclinaison dans le traitement d’image, également connue sous le nom de redressement, est le processus d’alignement d’une image inclinée ou inclinée pour la rendre plus attrayante visuellement et plus facile à utiliser. Un biais peut se produire pour diverses raisons, telles qu’une numérisation incorrecte, une distorsion de la perspective ou un mauvais alignement de la caméra, comme le montre l’image ci-dessous :

Image asymétrique

L’image source.

API Python pour redresser les images

Aspose.OCR est une bibliothèque OCR largement utilisée qui permet d’effectuer une OCR sur des images numérisées, des photos de smartphone, des captures d’écran, des zones d’une image et des PDF numérisés dans divers langages de programmation, dont Python. Nous utiliserons l’API Aspose.OCR for Python via .NET pour les corrections d’inclinaison.

Veuillez télécharger le package ou installer l’API depuis PyPI à l’aide de la commande pip suivante dans la console :

pip install aspose-ocr-python-net

Détecter l’angle d’inclinaison en Python

Nous pouvons facilement détecter l’angle d’inclinaison d’un texte dans une image en suivant les étapes ci-dessous :

  1. Créez une instance de la classe AsposeOCR.
  2. Initialisez un objet de la classe OcrInput.
  3. Ajoutez l’image au lot de reconnaissance OcrInput.
  4. Appelez la méthode calculateskew(). Il prend le chemin de l’image comme argument.
  5. Afficher l’angle d’inclinaison calculé.

L’exemple de code suivant montre comment détecter l’angle d’inclinaison d’une image en Python.

import aspose.ocr as ocr

# Instancier l'API Aspose.OCR
api = ocr.AsposeOcr()

# Ajouter une image au lot de reconnaissance
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE)
img.add("D:\\Files\\source.png")

# Détecter l'angle d'inclinaison
angles = api.calculate_skew(img);
for angle in angles:
    print("File: " + angle.source)
    print(f"Skew angle: {angle.angle:.1f}\xb0")
File: D:\Files\source.png
Skew angle: 5.8°

Correction automatique de l’inclinaison en Python

Nous pouvons activer la correction automatique de l’inclinaison et enregistrer l’image corrigée en suivant les étapes ci-dessous :

  1. Créez une instance de la classe AsposeOCR.
  2. Initialisez un objet de la classe PreprocessingFilter.
  3. Ajoutez le filtre autoskew().
  4. Après cela, ajoutez l’image au lot de reconnaissance et appliquez un filtre de traitement à l’aide de la classe OcrInput.
  5. Enfin, appelez la méthode ImageProcessing.save() pour enregistrer l’image traitée dans le dossier de chemin spécifié.

L’exemple de code suivant montre comment appliquer la correction automatique de l’inclinaison avec un filtre de prétraitement en Python.

import aspose.ocr as ocr

# Instancier l'API Aspose.OCR
api = ocr.AsposeOcr()

# Initialiser le traitement de l'image
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(filters.auto_skew())

# Ajouter une image au lot de reconnaissance et appliquer le filtre de traitement
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Enregistrer l'image traitée dans le dossier "résultat"
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")
Correction automatique de l'inclinaison avec filtre en Python

Correction automatique de l’inclinaison avec filtre en Python.

Réalignement manuel des images en Python

Pour la correction manuelle de l’inclinaison, nous pouvons définir l’angle d’inclinaison manuellement en suivant les étapes ci-dessous :

  1. Créez une instance de la classe AsposeOCR.
  2. Initialisez un objet de la classe PreprocessingFilter.
  3. Ajoutez le filtre rotate().
  4. Après cela, ajoutez l’image au lot de reconnaissance et appliquez un filtre de traitement à l’aide de la classe OcrInput.
  5. Enfin, appelez la méthode ImageProcessing.save() pour enregistrer l’image traitée dans le dossier de chemin spécifié.

L’exemple de code suivant montre comment redresser manuellement les images en Python.

import aspose.ocr as ocr

# Instancier l'API Aspose.OCR
api = ocr.AsposeOcr()

# Initialiser le traitement de l'image
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(ocr.models.preprocessingfilters.PreprocessingFilter.rotate(5.8))

# Ajouter une image au lot de reconnaissance et appliquer le filtre de traitement
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# Enregistrer l'image traitée dans le dossier "résultat"
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer Aspose.OCR for Python via .NET sans limitations d’évaluation.

Correction de l’inclinaison - Ressources gratuites

Outre la mise en œuvre de la correction du désalignement de l’image dans Python, vous pouvez explorer davantage l’API Python OCR à l’aide des ressources suivantes :

Conclusion

Dans cet article, nous avons appris comment aligner correctement les images inclinées à l’aide de la correction d’inclinaison d’image en Python. Nous avons vu comment redresser les images en utilisant la méthode automatique et en réglant manuellement l’angle de rotation. En tirant parti d’Aspose.OCR for Python via .NET, vous pouvez facilement intégrer une telle fonctionnalité dans vos applications Python. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également