Comment améliorer la qualité d'une image pour de meilleurs résultats d'OCR en utilisant C# | IronOCR

C&#35 ; Filtres de correction d'image pour une meilleure lecture OCR

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

IronOCR fournit cinq filtres de correction d'image essentiels (accentuation, amélioration de la résolution, débruitage, dilatation et érosion) qui pré-traitent les images pour améliorer de manière significative la précision de l'OCR en améliorant la clarté du texte et en réduisant le bruit avant l'extraction du texte.

Démarrage rapide : Appliquer le filtre Netteté pour un texte clair

Utilisez le OcrImageInput d'IronOcr pour rendre plus nette une image floue avec une seule ligne de code. Cet exemple montre l'amélioration de l'image pour une reconnaissance optique des caractères (OCR) précise.

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.

    new IronOcr.OcrImageInput("sample.png").Sharpen().SaveAsImages("output.png");
  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 appliquer le filtre d'accentuation de la netteté ?

Ce filtre augmente le contraste sur les bords de l'image, ce qui permet de mieux définir les limites du texte. Elle améliore la clarté du texte, rendant la reconnaissance des caractères plus précise.

Pourquoi l'affinage améliore-t-il la précision de l'OCR ?

Le filtre d'accentuation souligne les limites entre le texte et l'arrière-plan en améliorant le contraste des bords. Les algorithmes de reconnaissance de caractères ont besoin de formes de lettres claires et distinctes pour fonctionner correctement. Un texte flou aux contours flous, courant dans les documents numérisés ou les photos de mauvaise qualité, entraîne une mauvaise identification des limites des caractères par les moteurs de reconnaissance optique de caractères. Pour en savoir plus sur le traitement optimal des images pour l'OCR, consultez notre guide complet sur les filtres d'optimisation d'image pour l'OCR.

Pour appliquer le filtre d'accentuation de la netteté, invoquez la méthode Sharpen de l'objet OcrImageInput :

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-sharpen-filter.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Apply sharpen filter
imageInput.Sharpen();

// Export filtered image
imageInput.SaveAsImages("sharpen.jpg");
$vbLabelText   $csharpLabel

Quand utiliser le filtre d'accentuation de la netteté ?

Utilisez le renforcement de la netteté pour les images légèrement floues, les documents numérisés dont les bords du texte sont flous ou les photographies prises sous un mauvais éclairage. Évitez de trop accentuer le texte clair, car cela introduit des artefacts et réduit la précision. Pour les scans extrêmement flous, combinez l'accentuation avec d'autres filtres ou consultez notre guide sur Réparation de scans et d'images de faible qualité.

Exportez des images filtrées à l'aide de la méthode SaveAsImages. Vous trouverez ci-dessous une comparaison avant/après.

Blurred text sample showing business article content before applying sharpen filter
Text sample after sharpen filter application showing improved edge definition and character clarity

Comment améliorer la résolution pour une meilleure OCR?

Ce filtre augmente la densité des pixels, améliorant ainsi la netteté et la clarté. Il aide les moteurs OCR à lire plus précisément le texte dans les images à faible résolution.

Quel DPI dois-je viser pour l'OCR?

Les moteurs OCR sont plus performants à 300 DPI (points par pouce). Les résolutions inférieures entraînent une mauvaise reconnaissance des caractères ; les résolutions plus élevées ralentissent le traitement sans améliorer la précision. Le filtre d'amélioration d'IronOCR met intelligemment à l'échelle les images à des niveaux optimaux de DPI. Pour des conseils détaillés, consultez notre guide des paramètres DPI.

Invoquez la méthode EnhanceResolution pour appliquer ce filtre. La cible par défaut est 225 DPI :

using IronOcr;

// Create OCR input
var imageInput = new OcrImageInput("low-res-scan.jpg");

// Apply enhance resolution filter with default 225 DPI
imageInput.EnhanceResolution();

// Or specify a custom DPI
imageInput.EnhanceResolution(300);

// Combine with OCR reading
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);
Console.WriteLine($"Extracted text: {result.Text}");
using IronOcr;

// Create OCR input
var imageInput = new OcrImageInput("low-res-scan.jpg");

// Apply enhance resolution filter with default 225 DPI
imageInput.EnhanceResolution();

// Or specify a custom DPI
imageInput.EnhanceResolution(300);

// Combine with OCR reading
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);
Console.WriteLine($"Extracted text: {result.Text}");
$vbLabelText   $csharpLabel

Quand l'amélioration de la résolution est-elle la plus importante?

L'amélioration de la résolution est cruciale pour :

  • Captures d'écran capturées à la résolution de l'écran (72-96 DPI)
  • Images web téléchargées sur l'internet
  • Documents historiques numérisés à faible résolution
  • Transmissions par fax à faible résolution

L'exemple OCR Tesseract Image DPI permet de comprendre comment le DPI affecte la précision des différents types de documents.

Low-resolution text sample showing blurry, pixelated business article requiring OCR enhancement
Resolution-enhanced text showing clearer characters after DPI improvement for better OCR accuracy

Comment supprimer le bruit des images?

Les filtres de débruitage réduisent les artefacts indésirables dans les images. La réduction du bruit isole le texte des interférences de l'arrière-plan, ce qui permet d'obtenir des résultats d'OCR plus nets et plus précis.

Quelle est la différence entre la morphologie 2x2 et la morphologie 3x3 ?

La taille de la morphologie détermine la force du débruitage. Une morphologie 2x2 applique une réduction douce du bruit pour minimiser les artefacts tout en préservant la finesse du texte. La morphologie 3x3 permet une suppression agressive du bruit pour les documents fortement dégradés, mais peut affecter les textes de très petite taille.

Pour appliquer le filtre de débruitage, utilisez la méthode DeNoise . La morphologie par défaut est 2x2. Passez 'true' pour une morphologie 3x3 :

using IronOcr;

// Load noisy document
var imageInput = new OcrImageInput("noisy-scan.pdf");

// Apply denoise filter with default 2x2 morphology
imageInput.DeNoise();

// Apply stronger denoising with 3x3 morphology
imageInput.DeNoise(true);

// Combine with other filters for severely degraded images
imageInput.DeNoise()
         .Sharpen()
         .EnhanceResolution(300);

// Process with OCR
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);

// Check confidence levels
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page confidence: {page.Confidence}%");
}
using IronOcr;

// Load noisy document
var imageInput = new OcrImageInput("noisy-scan.pdf");

// Apply denoise filter with default 2x2 morphology
imageInput.DeNoise();

// Apply stronger denoising with 3x3 morphology
imageInput.DeNoise(true);

// Combine with other filters for severely degraded images
imageInput.DeNoise()
         .Sharpen()
         .EnhanceResolution(300);

// Process with OCR
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);

// Check confidence levels
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page confidence: {page.Confidence}%");
}
$vbLabelText   $csharpLabel

Comment savoir si mon image a besoin d'être débruitée?

Recherchez ces indicateurs de bruit :

  • Taches ou points aléatoires sur l'arrière-plan
  • Bruit salé et poivré dû à une mauvaise numérisation
  • Grainage dû à la photographie à ISO élevé
  • Texture d'arrière-plan en papier recyclé

Pour la détection automatique du bruit, explorez notre Assistant de filtrage.

Noisy scanned document with speckles and artifacts degrading text about Japanese tech executives
Clean document after denoise filter removes background speckles and improves text clarity

Comment utiliser le filtre Dilate?

La dilatation élargit les régions lumineuses dans les images. Elle épaissit le texte, le rendant plus visible et plus facile à interpréter par les logiciels de reconnaissance optique de caractères (OCR).

Quand dois-je appliquer la dilatation au texte?

La dilatation fonctionne mieux avec les caractères de texte minces ou brisés que l'on trouve dans :

  • Vieux documents dactylographiés à l'encre irrégulière
  • Reçus défraîchis et impressions sur papier thermique
  • Documents avec des polices de type "hairline
  • Texte surcompressé dans des formats d'image

La dilatation permet de combler les petites lacunes à l'intérieur des caractères et de renforcer les connexions faibles entre les traits. Cela permet d'éviter que les moteurs de reconnaissance optique de caractères n'interprètent à tort les caractères discontinus comme des symboles multiples.

Pour appliquer le filtre de dilatation, utilisez la méthode Dilate . La morphologie par défaut est 2x2 ; passer 'true' pour 3x3 :

using IronOcr;

// Create OCR engine
var ocrTesseract = new IronTesseract();

// Apply dilate filter
var imageInput = new OcrImageInput("thin-text.jpg");
imageInput.Dilate();

// For more aggressive dilation
imageInput.Dilate(true);

// Practical example for faded receipt processing
var receiptInput = new OcrImageInput("faded-receipt.jpg");
receiptInput.Dilate()
           .DeNoise()
           .EnhanceResolution(300);

// Configure for better receipt reading
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
ocrTesseract.Configuration.ReadBarCodes = true;

// Perform OCR
var result = ocrTesseract.Read(receiptInput);
using IronOcr;

// Create OCR engine
var ocrTesseract = new IronTesseract();

// Apply dilate filter
var imageInput = new OcrImageInput("thin-text.jpg");
imageInput.Dilate();

// For more aggressive dilation
imageInput.Dilate(true);

// Practical example for faded receipt processing
var receiptInput = new OcrImageInput("faded-receipt.jpg");
receiptInput.Dilate()
           .DeNoise()
           .EnhanceResolution(300);

// Configure for better receipt reading
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
ocrTesseract.Configuration.ReadBarCodes = true;

// Perform OCR
var result = ocrTesseract.Read(receiptInput);
$vbLabelText   $csharpLabel

Quels sont les problèmes courants liés à la surdilatation ?

Une dilatation excessive peut provoquer :

  • Saignement des caractères lorsque des lettres adjacentes se confondent
  • Perte de détails internes (trous en 'e' ou '8')
  • Précision réduite pour le texte en gras

Contrôlez les résultats et ajustez-les en conséquence. Pour les documents comportant des textes de poids différents, utilisez nos filtres de correction de la qualité de l'image de manière sélective.

Document with thin text strokes that would benefit from dilation filtering for OCR
Text after dilation filter showing thickened character strokes and improved legibility

Comment appliquer le filtre Erode?

L'érosion réduit la taille des zones claires dans les images, en affinant les caractères épais ou déformés et en améliorant la séparation des caractères.

Pourquoi l'érosion est-elle utile pour les textes épais ?

L'érosion amincit les traits du texte et sépare les caractères qui se touchent. Ce filtre excelle avec :

  • Documents imprimés surchargés
  • Photocopies avec saignée des caractères
  • Texte en gras qui apparaît fusionné
  • Transmissions de télécopies de mauvaise qualité

Une érosion minutieuse rétablit la séparation des caractères et améliore la reconnaissance des lettres individuelles, évitant ainsi que des mots entiers ne soient mal lus.

Utilisez la méthode Erode pour appliquer ce filtre. La morphologie par défaut est 2x2 ; passer 'true' pour 3x3 :

using IronOcr;

// Create OCR instance
var ocrTesseract = new IronTesseract();

// Load image with thick text
var imageInput = new OcrImageInput("thick-text.jpg");

// Apply erode filter
imageInput.Erode();

// Stronger erosion for heavily bleeding text
imageInput.Erode(true);

// Example: Processing a poor-quality photocopy
var photocopyInput = new OcrImageInput("thick-text-photocopy.pdf");

// Apply erosion followed by sharpening for best results
photocopyInput.Erode()
              .Sharpen()
              .EnhanceResolution(300);

// Configure OCR for better accuracy
ocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\\:\";<>?,./";
ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";

var ocrResult = ocrTesseract.Read(photocopyInput);

// Extract with confidence check
var highConfidenceText = ocrResult.Blocks
    .Where(b => b.Confidence > 90)
    .Select(b => b.Text);
using IronOcr;

// Create OCR instance
var ocrTesseract = new IronTesseract();

// Load image with thick text
var imageInput = new OcrImageInput("thick-text.jpg");

// Apply erode filter
imageInput.Erode();

// Stronger erosion for heavily bleeding text
imageInput.Erode(true);

// Example: Processing a poor-quality photocopy
var photocopyInput = new OcrImageInput("thick-text-photocopy.pdf");

// Apply erosion followed by sharpening for best results
photocopyInput.Erode()
              .Sharpen()
              .EnhanceResolution(300);

// Configure OCR for better accuracy
ocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\\:\";<>?,./";
ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";

var ocrResult = ocrTesseract.Read(photocopyInput);

// Extract with confidence check
var highConfidenceText = ocrResult.Blocks
    .Where(b => b.Confidence > 90)
    .Select(b => b.Text);
$vbLabelText   $csharpLabel

Comment concilier l'érosion et la lisibilité du texte?

Pour trouver le bon niveau d'érosion, il faut procéder à des tests minutieux :

  • Démarrer avec la morphologie 2x2 par défaut
  • Test sur des échantillons de documents représentatifs
  • Vérifier que les signes de ponctuation restent visibles
  • Veiller à ce que les polices fines ne se cassent pas

Pour les documents avec des poids de texte mixtes, consultez nos options de configuration avancées.

Document with merged/thick characters that would benefit from erosion filter processing
Text after erosion filter showing separated characters and refined stroke thickness

Comment enregistrer des images filtrées sous forme de PDF consultables?

IronOCR vous permet d'enregistrer des PDF modifiés avec des filtres appliqués ou dans leur état d'origine. Le deuxième paramètre de la méthode SaveAsSearchablePdf détermine s'il faut enregistrer avec des filtres.

Quel est l'intérêt de conserver les modifications apportées aux filtres ?

La préservation des changements de filtre présente plusieurs avantages :

  • Création de documents plus clairs et plus lisibles
  • Maintien de la cohérence entre les lots de documents
  • Confirmation visuelle de l'amélioration de la qualité du texte
  • Permet des comparaisons de contrôle de la qualité

La création de PDF consultables intègre une couche de texte OCR tout en préservant l'aspect visuel. Pour en savoir plus, consultez notre guide sur la création de PDF consultables.

using IronOcr;

var ocr = new IronTesseract();
var ocrInput = new OcrInput();

// Load a PDF file
ocrInput.LoadPdf("invoice.pdf");

// Apply multiple filters for comprehensive improvement
ocrInput.ToGrayScale()
        .DeNoise()
        .Sharpen()
        .EnhanceResolution(300);

// Perform OCR
OcrResult result = ocr.Read(ocrInput);

// Save the result as a searchable PDF with filters applied
result.SaveAsSearchablePdf("outputFiltered.pdf", true);

// Or save without filters to preserve original appearance
result.SaveAsSearchablePdf("outputOriginal.pdf", false);

// Export to other formats
result.SaveAsTextFile("extracted-text.txt");
result.SaveAsHocrFile("output.html");
using IronOcr;

var ocr = new IronTesseract();
var ocrInput = new OcrInput();

// Load a PDF file
ocrInput.LoadPdf("invoice.pdf");

// Apply multiple filters for comprehensive improvement
ocrInput.ToGrayScale()
        .DeNoise()
        .Sharpen()
        .EnhanceResolution(300);

// Perform OCR
OcrResult result = ocr.Read(ocrInput);

// Save the result as a searchable PDF with filters applied
result.SaveAsSearchablePdf("outputFiltered.pdf", true);

// Or save without filters to preserve original appearance
result.SaveAsSearchablePdf("outputOriginal.pdf", false);

// Export to other formats
result.SaveAsTextFile("extracted-text.txt");
result.SaveAsHocrFile("output.html");
$vbLabelText   $csharpLabel

Comment choisir entre un PDF filtré et un PDF original ?

Enregistrer avec des filtres (true) quand:

  • La qualité du document original est médiocre
  • L'apparence doit être cohérente d'un document à l'autre
  • La version filtrée améliore considérablement la lisibilité
  • Archivage de documents pour un stockage à long terme

Enregistrer sans filtre (faux) quand:

  • La préservation de l'aspect original est une obligation légale
  • Les informations sur les couleurs sont importantes
  • L'authenticité du document doit être préservée
  • Les filtres ne sont nécessaires que pour la précision de l'OCR

Pour des options de traitement PDF avancées, consultez notre Guide d'extraction de texte OCR pour PDF. Pour des combinaisons de filtres optimales, voir le tutoriel Assistant de filtre.

Questions Fréquemment Posées

Quels filtres d'image peuvent améliorer la précision de l'OCR en C# ?

IronOCR fournit cinq filtres de correction d'image essentiels : accentuer, améliorer la résolution, dénaturer, dilater et éroder. Ces filtres permettent de prétraiter les images afin d'améliorer de manière significative la précision de l'OCR en améliorant la clarté du texte et en réduisant le bruit avant l'extraction du texte.

Comment améliorer la netteté d'une image floue pour une meilleure reconnaissance du texte ?

Vous pouvez rendre plus nette une image floue à l'aide de l'entrée d'image IronOCR en une seule ligne de code : new IronOcr.OcrImageInput("sample.png").Sharpen(). Ce filtre augmente le contraste le long des bords de l'image, créant des limites de texte plus définies pour une meilleure reconnaissance des caractères.

Pourquoi l'affinage améliore-t-il la précision de l'OCR ?

Le filtre d'accentuation de la netteté d'IronOCR met l'accent sur les limites entre le texte et l'arrière-plan en améliorant le contraste des bords. Ce point est crucial car les algorithmes de reconnaissance de caractères ont besoin de formes de lettres claires et distinctes pour fonctionner correctement. Un texte flou avec des bords doux entraîne une mauvaise identification des limites des caractères par les moteurs de reconnaissance optique des caractères.

Quand dois-je utiliser le filtre de netteté pour l'OCR ?

Utilisez le filtre de netteté d'IronOCR pour les images légèrement floues, les documents numérisés dont les bords du texte sont flous ou les photographies prises sous un mauvais éclairage. Évitez de trop accentuer le texte clair, car cela introduit des artefacts et réduit la précision.

Quel DPI dois-je viser pour une performance optimale de l'OCR ?

IronOCR fonctionne mieux avec des images à 300 DPI (points par pouce). Les résolutions inférieures entraînent une mauvaise reconnaissance des caractères, tandis que les résolutions supérieures ralentissent le traitement sans améliorer la précision. Utilisez le filtre d'amélioration de la résolution pour augmenter la densité des pixels dans les images à faible résolution.

Puis-je exporter des images filtrées après les avoir corrigées ?

Oui, IronOCR vous permet d'exporter des images filtrées à l'aide de la méthode SaveAsImages. Cela vous permet d'afficher des comparaisons avant et après vos corrections d'images et de vérifier les améliorations avant d'exécuter l'OCR.

Quel est le flux de travail minimal pour l'application de filtres d'image ?

Le flux de travail minimal avec IronOCR comporte 5 étapes : téléchargez la bibliothèque, importez votre PDF ou vos images, appliquez les filtres souhaités (accentuation, amélioration de la résolution, débruitage, dilatation, érosion), exportez l'image corrigée pour la visualiser et utilisez la méthode Read pour le traitement OCR.

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
Prêt à commencer?
Nuget Téléchargements 5,299,091 | Version : 2025.12 vient de sortir