CAPTCHAs mit IronOCR lesen – OCR Software Grenzen bei der Texterkennung
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 definitionsgemäß sehr schwer für 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:
- OcrInput.DeNoise() oder OcrInput.DeepCleanBackgroundNoise() Filter
- OcrInput.ToGrayScale() Filter
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
Erklärung:
IronOcr: Diese Bibliothek dient zum Lesen von Text aus Bildern.OcrInput: Diese Klasse repräsentiert die Bildeingabe für die OCR-Verarbeitung.DeNoise: Diese Methode wird verwendet, um Hintergrundrauschen im Bild zu reduzieren.DeepCleanBackgroundNoise: Diese Methode wird zur aggressiveren Rauschunterdrückung eingesetzt, wenn die grundlegendeDeNoisenicht 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.

