Correction de l'inclinaison dans le traitement d'image à l'aide de C#

La correction du biais dans le traitement d’image est une tâche d’optimisation d’image. En vision par ordinateur, nous devons positionner correctement nos caméras et nos capteurs, mais cela entraîne souvent de grandes distorsions. De même, lors de la numérisation avec des scanners, l’alignement est parfois presque impossible. De ce fait, les images numérisées et les photographies présentent une légère inclinaison (inclinaison). Dans cet article, nous allons apprendre à effectuer une correction d’inclinaison dans le traitement d’image à l’aide de C#.

Les sujets suivants seront traités dans cet article :

  1. API de traitement d’image de correction d’inclinaison C#
  2. Détecter l’angle d’inclinaison de l’image
  3. Correction automatique de l’inclinaison
  4. Correction automatique du biais avec filtre de prétraitement
  5. Reconnaître le texte de l’image avec la correction automatique de l’inclinaison
  6. Correction manuelle de l’inclinaison
  7. Correction manuelle de l’inclinaison avec filtre de prétraitement

API de traitement d’image de correction d’inclinaison C#

Pour les corrections d’inclinaison, nous utiliserons l’API Aspose.OCR for .NET. L’API 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. Il permet d’enregistrer les résultats de texte reconnus dans formats de documents populaires.

Veuillez soit télécharger la DLL de l’API ou l’installer à l’aide de NuGet.

PM> Install-Package Aspose.OCR

Détecter l’angle d’inclinaison de l’image en C#

L’API fournit la méthode CalculateSkew(string) qui calcule l’angle d’inclinaison de l’image source fournie. 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 CalculateSkew(). 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 C#.

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

// Calculer l'angle d'inclinaison
float skew = recognitionEngine.CalculateSkew("C:\\Files\\OCR\\source.png");

// Afficher l'angle
Console.WriteLine($"Skew angle: {skew:N1}°");
Détecter l'angle d'inclinaison de l'image en C#

L’image source.

Skew angle: 5.8°

Correction automatique du biais en C#

Pour la correction automatique de l’inclinaison, nous pouvons activer la propriété RecognitionSettings.AutoSkew dans les paramètres de reconnaissance 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, définissez la propriété AutoSkew sur true.
  4. Après cela, appelez la méthode RecognizeImage() 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 en C#.

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

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

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

// Afficher le texte reconnu
Console.WriteLine(result.RecognitionText);

Correction automatique du biais avec filtre de prétraitement en C#

Alternativement, nous pouvons appliquer le filtre de prétraitement AutoSkew pour la correction automatique de l’inclinaison et enregistrer l’image corrigée 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 la correction automatique de l’inclinaison avec un filtre de prétraitement en C#.

// 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 recognitionEngine = new AsposeOcr();

// Ajouter un filtre de désalignement
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());

// Enregistrer l'image prétraitée dans un fichier
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
    using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
    {
        ms.WriteTo(fs);
    }
}
Correction automatique du biais avec filtre en C#

Correction automatique du biais avec filtre en C#.

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

Nous pouvons appliquer le filtre de prétraitement AutoSkew et reconnaître le texte de l’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. Pendant ce temps, créez une instance de la classe RecognitionSettings.
  5. Attribuez ensuite des filtres à la propriété PreprocessingFilters.
  6. Après cela, appelez la méthode RecognizeImage() avec l’image source et l’objet RecognitionSettings.
  7. Enfin, affichez le texte reconnu.

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

// Créer une instance de AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// Ajouter un filtre de désalignement
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.AutoSkew());

// Ajouter des filtres de prétraitement aux paramètres de reconnaissance
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;

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

// Afficher les résultats
Console.WriteLine(result.RecognitionText);

Correction manuelle de l’inclinaison en C#

Pour la correction manuelle de l’inclinaison, nous pouvons définir l’angle d’inclinaison manuellement en spécifiant la propriété SkewAngle dans les paramètres de reconnaissance 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, définissez la propriété SkewAngle.
  4. Après cela, appelez la méthode RecognizeImage() 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 en C#.

// 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.SkewAngle = 6;

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

// Afficher les résultats
Console.WriteLine(result.RecognitionText);

Correction manuelle de l’inclinaison avec filtre de prétraitement en C#

Nous pouvons également définir l’angle d’inclinaison manuellement en faisant pivoter l’image au degré spécifié à l’aide du filtre de prétraitement Rotate.

Veuillez suivre les étapes ci-dessous pour appliquer manuellement la correction d’inclinaison :

  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 Rotate().
  4. Pendant ce temps, créez une instance de la classe RecognitionSettings.
  5. Attribuez ensuite des filtres à la propriété PreprocessingFilters.
  6. Après cela, appelez la méthode RecognizeImage() avec l’image source et l’objet RecognitionSettings.
  7. 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 C#.

// Cet exemple de code montre comment appliquer une correction manuelle de l'inclinaison et reconnaître le texte de l'image.
// Créer une instance de AsposeOcr
AsposeOcr recognitionEngine = new AsposeOcr();

// Faire pivoter l'image de 90 degrés dans le sens inverse des aiguilles d'une montre
Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter filters = new Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter();
filters.Add(Aspose.OCR.Models.PreprocessingFilters.PreprocessingFilter.Rotate(-90));

// Enregistrer l'image prétraitée dans un fichier à des fins de débogage
using (MemoryStream ms = recognitionEngine.PreprocessImage("C:\\Files\\OCR\\source.png", filters))
{
    using (FileStream fs = new FileStream("C:\\Files\\OCR\\result.png", FileMode.Create, FileAccess.Write))
    {
        ms.WriteTo(fs);
    }
}

// Ajouter des filtres de prétraitement aux paramètres de reconnaissance
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.PreprocessingFilters = filters;

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

// Montrer les résultats
Console.WriteLine(result.RecognitionText);

Obtenez une licence d’évaluation gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer Aspose.OCR pour .NET sans limitation 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 C#.

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

Voir également