10 Stimmen

OCR-Maschinen, die für Bildschirm-Vorlesen entwickelt wurden

Gibt es OCR-Maschinen, die darauf ausgelegt sind, Text in Bildern von Bildschirmaufnahmen zu erkennen, anstatt gescanntem Text? Ich habe ein Projekt, bei dem ich Text in einer Anwendung abrufen und identifizieren muss, und bisher haben keine der OCR-Maschinen, die ich ausprobiert habe, gut mit Screenshots gearbeitet.

Idealerweise sollte die Maschine gut mit Farbe und Hintergrundgeräuschen arbeiten, obwohl ich einige Zugeständnisse machen kann, wenn so etwas nicht verfügbar ist.

Es muss .NET-kompatibel sein; entweder in .NET geschrieben sein oder eine .NET-aufrufbare API haben.

5voto

Nate Punkte 2402

Ich habe festgestellt, dass Tesseract OCR für ein Open-Source-Projekt ziemlich solide ist. Ich habe herausgefunden, dass es sogar einfache Captchas lesen und decodieren kann, wie zum Beispiel bei Megaupload. Ich denke, mit ein wenig Feinabstimmung könnte dies ziemlich gut funktionieren.

Der einzige Nachteil ist, dass es nur unkomprimierte TIFF-Bilder akzeptiert, was lästig sein kann.

BEARBEITEN: Philip Daubmeier hat bereits eine .NET-Integration gefunden, aber unten steht der Code zum Konvertieren eines Bitmaps in unkomprimiertes TIFF.

private void ConvertBitmapToTIF(Bitmap convert)
{
    ImageCodecInfo codecInfo = GetEncoderInfo("image/tiff");
    System.Drawing.Imaging.Encoder encodeCom = System.Drawing.Imaging.Encoder.Compression;
    System.Drawing.Imaging.Encoder encodeBPP = System.Drawing.Imaging.Encoder.ColorDepth;

    EncoderParameters parms = new EncoderParameters(2);
    EncoderParameter param0 = new EncoderParameter(encodeCom, (long)EncoderValue.CompressionNone);
    EncoderParameter param1 = new EncoderParameter(encodeBPP, 8L);
    parms.Param[0] = param0;
    parms.Param[1] = param1;

    convert.Save("output.tif", codecInfo, parms);
}

Dies speichert in einer Datei, aber die Bitmap.Save Methode kann auch in einen Stream schreiben.

4voto

Tomato Punkte 2193

Normalerweise ist die OCR-Technologie darauf eingestellt, mit gescanntem Text zu arbeiten, der mindestens 200 dpi hat, jedoch wird eine Auflösung von 300 dpi für eine zuverlässige OCR-Qualität empfohlen. Daher müssen Sie sich etwas Mühe geben, um die Einstellungen und alles so anzupassen, dass es mit Bildschirmtext funktioniert, der in der Regel etwa 96 dpi beträgt.

ABBYY hat eine OCR-Software für Bildschirmaufnahmen: http://www.abbyy.com/screenshot_reader/, die zeigt, dass ihre Technologie unter diesen Bedingungen gut funktioniert. Ich benutze sie, sie funktioniert einfach. Daher möchten Sie vielleicht ABBYY für das OCR-SDK kontaktieren: http://www.abbyy.com/ocr_sdk/ (kann von .NET aus verwendet werden)

Es ist nicht billig, aber es funktioniert. Haftungsausschluss: Ich arbeite für ABBYY

1voto

joe snyder Punkte 3599

Sie suchen im Wesentlichen nach den CAPTCHA-Umgehungswerkzeugen, die verschiedene Forscher ausprobiert haben, teilweise mit Erfolg.

Ein anderer Ansatz wäre die Verwendung von Glättungsalgorithmen, um 96 DPI-Captures zu interpolieren und in 300 DPI umzuwandeln (z.B. mit Photoshop) und dann Standard-OCR-Tools zu verwenden.

0voto

Olee Dee Punkte 14

Verwenden Sie die erste Antwort (OCR-Software), und für den Bildschirmschuss könnten Sie wahrscheinlich ein PRNTSCRN (Druckbildschirm)-Zeichen senden und dann den Inhalt der Zwischenablage (bmp) in ein tiff konvertieren.

Ich hoffe, das hilft Ihnen ein wenig mehr bei Ihrem Unterfangen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X