Gestion des CAPTCHA avec IronOCR

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

IronOCR peut-il lire les codes captcha ?

C'est possible, mais pas garanti.

La plupart des générateurs de CAPTCHA sont délibérément conçus pour tromper les logiciels de reconnaissance optique de caractères (OCR), et certains utilisent même le test " Impossible à lire par un logiciel OCR ", comme Tesseract, comme test unitaire.

Les codes Captcha sont par définition très difficiles à lire pour les moteurs OCR. La résolution est très faible et chaque caractère est organisé de manière spécifique, avec des angles et des espacements différents des autres, ainsi que l'inclusion d'un bruit de fond variable.

Les images en niveaux de gris dont le bruit de fond a été supprimé donnent de meilleurs résultats que les images en couleur, mais peuvent tout de même représenter un défi :

Filtre OcrInput.DeNoise() ou OcrInput.DeepCleanBackgroundNoise() Filtre OcrInput.ToGrayScale()

Voici un exemple de code C# qui tente de supprimer le bruit et de convertir une image CAPTCHA en niveaux de gris afin d'améliorer les résultats de la reconnaissance optique de caractères (OCR) :

using IronOcr;

class CaptchaReader
{
    static void Main(string[] args)
    {
        // Initialize the IronOCR engine
        var Ocr = new IronTesseract();

        // Create an OCR input object
        var Input = new OcrInput("captcha-image.jpg");

        // Apply noise reduction to improve OCR accuracy
        // This removes background noise while preserving text
        Input.DeNoise();

        // Optionally apply a deep clean for more aggressive noise removal
        Input.DeepCleanBackgroundNoise();

        // Convert the image to grayscale 
        // OCR works better on grayscale images compared to colored ones
        Input.ToGrayScale();

        // Perform OCR to extract text from the image
        var Result = Ocr.Read(Input);

        // Output the recognized text to the console
        Console.WriteLine(Result.Text);
    }
}
using IronOcr;

class CaptchaReader
{
    static void Main(string[] args)
    {
        // Initialize the IronOCR engine
        var Ocr = new IronTesseract();

        // Create an OCR input object
        var Input = new OcrInput("captcha-image.jpg");

        // Apply noise reduction to improve OCR accuracy
        // This removes background noise while preserving text
        Input.DeNoise();

        // Optionally apply a deep clean for more aggressive noise removal
        Input.DeepCleanBackgroundNoise();

        // Convert the image to grayscale 
        // OCR works better on grayscale images compared to colored ones
        Input.ToGrayScale();

        // Perform OCR to extract text from the image
        var Result = Ocr.Read(Input);

        // Output the recognized text to the console
        Console.WriteLine(Result.Text);
    }
}
Imports IronOcr

Friend Class CaptchaReader
	Shared Sub Main(ByVal args() As String)
		' Initialize the IronOCR engine
		Dim Ocr = New IronTesseract()

		' Create an OCR input object
		Dim Input = New OcrInput("captcha-image.jpg")

		' Apply noise reduction to improve OCR accuracy
		' This removes background noise while preserving text
		Input.DeNoise()

		' Optionally apply a deep clean for more aggressive noise removal
		Input.DeepCleanBackgroundNoise()

		' Convert the image to grayscale 
		' OCR works better on grayscale images compared to colored ones
		Input.ToGrayScale()

		' Perform OCR to extract text from the image
		Dim Result = Ocr.Read(Input)

		' Output the recognized text to the console
		Console.WriteLine(Result.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

Explication :

  • IronOcr : Cette bibliothèque est utilisée pour lire le texte à partir d'images.
  • OcrInput : Cette classe représente l'image d'entrée pour le traitement OCR.
  • DeNoise : Cette méthode est utilisée pour réduire le bruit de fond dans l'image.
  • DeepCleanBackgroundNoise : Cette méthode est utilisée pour une réduction du bruit plus agressive si la DeNoise de base n'est pas suffisante.
  • ToGrayScale : Cette option convertit l'image en niveaux de gris afin d'améliorer la précision de la reconnaissance.
  • Read : Cette méthode est appelée pour extraire le texte de l'image prétraitée.
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,167,857 | Version: 2025.11 vient de sortir