Handling CAPTCHAs with IronOCR

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

Wird IronOCR Captcha-Codes lesen?

Dies ist möglich, aber nicht garantiert.

Die meisten CAPTCHA-Generatoren sind absichtlich so gestaltet, dass sie OCR-Software täuschen, und einige verwenden sogar "Versagen beim Lesen durch OCR-Software" wie Tesseract als Unit-Test.

Captcha-Codes sind per Definition sehr schwer von OCR-Engines zu lesen. Die Auflösung ist sehr niedrig und jeder Charakter ist mit verschiedenen Winkeln und Abständen von den anderen speziell organisiert, zusammen mit der Einbeziehung variabler Hintergrundgeräusche.

Graustufenbilder, bei denen Hintergrundrauschen entfernt wurde, sind erfolgreicher als Farbbilder, können aber dennoch eine Herausforderung darstellen:

Unten ist ein Beispiel für C#-Code, der versucht, Rauschen zu entfernen und ein CAPTCHA-Bild in Graustufen umzuwandeln, um OCR-Ergebnisse zu verbessern:

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

Erklärung:

  • IronOcr: Diese Bibliothek wird verwendet, um Text aus Bildern zu lesen.
  • OcrInput: Diese Klasse repräsentiert den Bildeingang für die OCR-Bearbeitung.
  • DeNoise: Diese Methode wird verwendet, um Hintergrundrauschen im Bild zu reduzieren.
  • DeepCleanBackgroundNoise: Diese Methode wird für eine aggressivere Rauschunterdrückung eingesetzt, falls die grundlegende DeNoise nicht ausreicht.
  • ToGrayScale: Dies wandelt das Bild in Graustufen um, um die Erkennungsgenauigkeit zu verbessern.
  • Read: Diese Methode wird aufgerufen, um Text aus dem vorverarbeiteten Bild zu extrahieren.
Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,044,537 | Version: 2025.11 gerade veröffentlicht