Obsluga CAPTCHA z IronOCR

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

Czy IronOCR odczyta kody CAPTCHA?

Jest to możliwe, ale nie gwarantowane.

Wiekszosc generatorow CAPTCHA jest celowo zaprojektowana, aby zmylic oprogramowanie OCR, a niektore nawet używają "Niepowodzenie w odczytaniu przez oprogramowanie OCR" takie jak Tesseract jako test jednostkowy.

Kody CAPTCHA z definicji sa bardzo trudne do odczytania przez silniki OCR. Rozdzielczosc jest bardzo niska, a kazdy znak jest specjalnie uporzadkowany pod różnymi katami i odstepami od innych, wraz z uwzglednieniem różnego szumu tła.

Obrazy w skali szarosci z usunietym szumem tła sa bardziej skuteczne niz obrazy kolorowe, ale nadal mogą okazac sie wyzwaniem:

Poniżej znajduje się przykładowy kod w C#, który próbuje usunąć szum i przekształcić obraz CAPTCHA na skale szarosci, aby poprawić wyniki 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

Wyjaśnienie:

  • IronOcr: Ta biblioteka służy do odczytywania tekstu z obrazów.
  • OcrInput: Ta klasa reprezentuje obraz wejściowy do przetwarzania OCR.
  • DeNoise: Ta metoda służy do redukcji szumu tła na obrazie.
  • DeepCleanBackgroundNoise: Ta metoda jest stosowana w celu bardziej agresywnej redukcji szumów, jeśli podstawowa metoda DeNoise nie jest wystarczająca.
  • ToGrayScale: Konwertuje obraz na skalę szarości w celu poprawy dokładności rozpoznawania.
  • Read: Ta metoda jest wywoływana w celu wyodrębnienia tekstu z wstępnie przetworzonego obrazu.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 5,896,332 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronOcr
uruchom próbkę obserwuj, jak twój obraz staje się tekstem z możliwością wyszukiwania.