Manejo de CAPTCHA con IronOCR

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

¿IronOCR leerá códigos captcha?

Esto es posible, pero no está garantizado.

La mayoría de los generadores de CAPTCHA están diseñados deliberadamente para engañar al software OCR y algunos incluso usan "Fallar al ser leído por el software OCR" como Tesseract como una prueba unitaria.

Los códigos CAPTCHA son, por definición, muy difíciles de leer para los motores OCR. La resolución es muy baja y cada carácter está específicamente organizado con diferentes ángulos y espacios de los demás, junto con la inclusión de ruido variable de fondo.

Las imágenes en escala de grises con el ruido de fondo eliminado son más exitosas que las imágenes en color, pero aún pueden resultar un desafío:

A continuación se muestra un ejemplo de código C# que intenta eliminar el ruido y convertir una imagen CAPTCHA a escala de grises para mejorar los resultados de 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

Explicación:

  • IronOcr: Esta biblioteca se utiliza para leer texto de imágenes.
  • OcrInput: Esta clase representa la entrada de imagen para el procesamiento de OCR.
  • DeNoise: Este método se usa para reducir el ruido de fondo en la imagen.
  • DeepCleanBackgroundNoise: Este método se emplea para una reducción de ruido más agresiva si el DeNoise básico no es suficiente.
  • ToGrayScale: Esto convierte la imagen a escala de grises para mejorar la precisión del reconocimiento.
  • Read: Este método se llama para extraer texto de la imagen preprocesada.
Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 5,167,857 | Version: 2025.11 recién lanzado