Correction de l'inclinaison de l'image en Java

En infographie et en traitement d’image, le biais d’image est une déviation angulaire des images rectangulaires. Il est également connu sous le nom d’inclinaison ou de distorsion de l’image. Le terme “inclinaison” fait référence à l’angle d’une image. L’inclinaison de l’image se produit lorsque la position visuelle des éléments d’une image n’est pas uniforme. L’inclinaison peut faire en sorte que tous les coins soient inclinés, ou même décalés de sorte qu’un côté soit plus long que l’autre. De telles photos ou images numérisées peuvent sembler déformées et peu attrayantes. Dans cet article, nous allons apprendre à détecter le biais d’image par programmation. Nous apprendrons également comment effectuer une correction du biais d’image en Java.

Les sujets suivants seront traités dans cet article :

  1. API Java pour la correction du biais d’image
  2. Détecter l’angle d’inclinaison de l’image
  3. Détecter l’angle d’inclinaison de l’image de l’image en direct
  4. Correction automatique de l’inclinaison de l’image
  5. Reconnaître le texte de l’image avec la correction automatique de l’inclinaison
  6. Correction manuelle de l’inclinaison de l’image
  7. Reconnaître le texte de l’image avec la correction manuelle de l’inclinaison de l’image

API Java pour la correction du biais d’image

Pour la détection et les corrections de l’inclinaison de l’image, nous utiliserons l’API Aspose.OCR for Java. Il permet d’effectuer l’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. L’API permet également d’enregistrer les résultats de texte reconnus dans des formats de document courants.

La classe AsposeOCR de l’API est la classe principale pour reconnaître le texte des images. Il fournit la méthode CalcSkewImage(string) qui calcule l’angle d’inclinaison de l’image source fournie. Il fournit également une autre méthode CalcSkewImageFromUri(String uri) qui calcule l’angle d’inclinaison d’une image fournie par le lien URI. La classe PreprocessingFilter est la classe de base pour les commandes de traitement d’image. La classe RecognitionSettings de l’API fournit des paramètres pour la reconnaissance d’image contient des éléments qui permettent de personnaliser le processus de reconnaissance.

Veuillez soit télécharger le JAR de l’API ou ajouter la configuration pom.xml suivante dans une application Java basée sur Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>22.9</version>
</dependency>

Détecter l’angle d’inclinaison de l’image en Java

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

  1. Tout d’abord, créez une instance de la classe AsposeOCR.
  2. Appelez la méthode CalcSkewImage(). Il prend le chemin de l’image comme argument.
  3. Enfin, montrez l’angle d’inclinaison calculé.

L’exemple de code suivant montre comment calculer l’angle d’inclinaison d’une image en Java.

// Cet exemple de code montre comment calculer l'angle d'inclinaison d'une image.
// Créer une instance de AsposeOcr
AsposeOCR api = new AsposeOCR();

// Calculer l'angle d'inclinaison
double skew = api.CalcSkewImage("C:\\Files\\source.png");

// Afficher l'angle
System.out.println("Skew angle: " + skew + "°.");

Détecter l’angle d’inclinaison de l’image à partir de l’URL de l’image en direct

Nous pouvons également détecter l’angle d’inclinaison d’une image à partir d’une URL en direct en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe AsposeOCR.
  2. Appelez la méthode CalcSkewImageFromUri(). Il prend le chemin de l’image comme argument.
  3. Enfin, montrez l’angle d’inclinaison calculé.

L’exemple de code suivant montre comment calculer l’angle d’inclinaison d’une image en Java.

// Cet exemple de code montre comment calculer l'angle d'inclinaison d'une image.
// Créer une instance de AsposeOcr
AsposeOCR api = new AsposeOCR();

// Calculer l'angle d'inclinaison
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");

// Afficher l'angle
System.out.println("Skew angle: " + skew + "°.");

Correction automatique de l’inclinaison de l’image en Java

Nous pouvons corriger automatiquement la correction du biais d’image en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe AsposeOCR.
  2. Ensuite, initialisez un objet de la classe PreprocessingFilter.
  3. Ensuite, ajoutez le filtre AutoSkew().
  4. Après cela, appelez la méthode PreprocessImage() pour appliquer le filtre sur l’image source.
  5. Enfin, enregistrez l’image corrigée.

L’exemple de code suivant montre comment appliquer le filtre de prétraitement de correction automatique de l’inclinaison en Java.

// Cet exemple de code montre comment appliquer la correction automatique de l'inclinaison à l'aide du filtre de prétraitement et enregistrer l'image corrigée.
// Créer une instance de AsposeOcr
AsposeOCR api = new AsposeOCR();

// Ajouter un filtre de désalignement
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());

// Enregistrer l'image prétraitée dans un fichier
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Reconnaître le texte de l’image avec la correction automatique de l’inclinaison en Java

Nous pouvons appliquer une correction automatique de l’inclinaison et reconnaître le texte en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe AsposeOCR.
  2. Ensuite, initialisez un objet de la classe RecognitionSettings.
  3. Ensuite, appelez le setAutoSkew avec true comme argument.
  4. Après cela, appelez la méthode RecognizePage() avec l’image source et l’objet RecognitionSettings.
  5. Enfin, affichez le texte reconnu.

L’exemple de code suivant montre comment appliquer la correction d’inclinaison automatique et reconnaître le texte en Java.

// Cet exemple de code montre comment appliquer la correction automatique de l'inclinaison.
// Créer une instance de AsposeOcr
AsposeOCR api = new AsposeOCR();

// Activer le redressement automatique dans les paramètres de reconnaissance
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);

// Reconnaître l'image
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Afficher le texte reconnu
System.out.println(result.recognitionText);

Correction manuelle de l’inclinaison de l’image en Java

Nous pouvons définir l’angle d’inclinaison manuellement en faisant pivoter l’image au degré spécifié en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe AsposeOCR.
  2. Ensuite, initialisez un objet de la classe PreprocessingFilter.
  3. Ensuite, ajoutez un angle de rotation à l’aide du filtre de la méthode Rotate().
  4. Ensuite, créez une instance de la classe RecognitionSettings.
  5. Après cela, appelez la méthode PreprocessImage() pour appliquer le filtre sur l’image source.
  6. Enfin, affichez le texte reconnu.

L’exemple de code suivant montre comment appliquer une correction d’inclinaison manuelle avec un filtre de prétraitement en Java.

// Cet exemple de code montre comment appliquer une correction manuelle de l'inclinaison.
// Créer une instance de AsposeOcr
AsposeOCR api = new AsposeOCR();

// Ajouter un filtre de désalignement
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));

// Enregistrer l'image prétraitée dans un fichier
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);

Reconnaître le texte de l’image avec la correction manuelle de l’inclinaison de l’image en Java

Nous pouvons définir l’angle d’inclinaison manuellement et reconnaître le texte en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe AsposeOCR.
  2. Ensuite, initialisez un objet de la classe RecognitionSettings.
  3. Ensuite, appelez la méthode setSkew().
  4. Après cela, appelez la méthode RecognizePage() avec l’image source et l’objet RecognitionSettings.
  5. Enfin, affichez le texte reconnu.

L’exemple de code suivant montre comment appliquer une correction manuelle de l’inclinaison et reconnaître le texte de l’image en Java.

// Cet exemple de code montre comment appliquer une correction manuelle de l'inclinaison.
// Créer une instance de AsposeOcr
AsposeOCR recognitionEngine = new AsposeOCR();

// Définir manuellement l'angle d'inclinaison
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setSkew(6);

// Reconnaître l'image
RecognitionResult result = recognitionEngine.RecognizePage("C:\\Files\\source.png", recognitionSettings);

// Afficher les résultats
System.out.println(result.recognitionText);

Obtenez une licence d’évaluation gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer Aspose.OCR pour Java sans limitations d’évaluation.

Conclusion

Dans cet article, nous avons appris à :

  • effectuer l’OCR et reconnaître le texte sur les images ;
  • appliquer des filtres et traiter des images ;
  • utiliser les paramètres de reconnaissance ;
  • enregistrez les images corrigées à l’aide de Java.

Outre la correction du biais d’image en Java, vous pouvez en savoir plus sur Aspose.OCR pour l’API Java à l’aide de documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également