2010-07-27 8 views
8

Gibt es OCR-Engines, die zur Erkennung von Text in screenerfassten Bildern anstelle von gescanntem Text entwickelt wurden? Ich habe ein Projekt, bei dem ich Text in einer Anwendung abrufen und identifizieren muss, und keiner der OCR-Engines, die ich bisher ausprobiert habe, hat sich gut mit Screenshots vertragen.OCR-Engines für die Bildschirmlesung

Idealerweise sollte der Motor gut mit Farbe und Hintergrundgeräuschen funktionieren, obwohl ich einige Vorkehrungen treffen kann, wenn nichts dergleichen verfügbar ist.

Es muss .NET-kompatibel sein; entweder in .NET geschrieben oder mit einer .NET-aufrufbaren API.

+0

Was ist der Unterschied zwischen gescannten Text und einen Screenshot? –

+3

Der Text des Screenshots ist garantiert auf geraden Linien, aber auch in Farbe mit farbigem Hintergrundrauschen. Ich suche nach einer OCR-Engine, die speziell zum Lesen von Screenshots entwickelt wurde. –

Antwort

4

Normalerweise ist die OCR-Technologie darauf abgestimmt, mit eingescanntem Text zu arbeiten, der mindestens 200 dpi beträgt. Für eine zuverlässige OCR-Qualität werden jedoch 300 dpi empfohlen. Daher müssen Sie einige Anstrengungen unternehmen, um die Einstellungen und alles andere zu optimieren, damit es auf dem Bildschirmtext funktioniert, der normalerweise mit fast 96 dpi betrachtet wird.

ABBYY hat Bildschirm-OCR-Software: http://www.abbyy.com/screenshot_reader/, die beweist, dass seine Technologie unter diesen Bedingungen gut arbeiten kann. Ich benutze es, es funktioniert einfach. Daher möchten Sie vielleicht ABBYY für OCR SDK kontaktieren: http://www.abbyy.com/ocr_sdk/ (kann von .NET verwendet werden)

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

+0

Danke, ich werde es überprüfen. =) –

+0

Das ist gut für niedrigere dpi-Bilder (z. B. 96dpi) - ich öffne diese Art Bild in Windows Photo Viewer und Screenshot-Reader verwendet. Aber mein Bild ist 96dpi und die Höhe ist 20000, so dass es in diesem Fall sehr lang ist, gibt es irgendeine Automatisierung wie Screenshot-Reader anstelle von Screenshot lesen und gehen und wieder Screenshot lesen .. – SIslam

5

Ich habe Tesseract OCR gefunden, um ziemlich solide für ein Open-Source-Projekt zu sein. Ich habe festgestellt, dass es sogar einfache Captchas wie Megaupload lesen und entschlüsseln kann. Ich denke, mit ein wenig Feinabstimmung könnte das ziemlich gut funktionieren.

Der einzige Schmerz ist, dass es nur unkomprimierte TIFF-Bilder akzeptiert, die lästig sein können.

EDIT: Philip Daubmeier hat bereits eine .NET-Integration gefunden, aber unten ist Code zum Konvertieren einer Bitmap in unkomprimierte 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); 
} 

Das spart in eine Datei, aber die Bitmap.Save Verfahren auch in einen Stream schreiben können.

+0

Ich integrierte dies in ein .NET-Projekt nur mit der ausführbare Datei und Code zum Konvertieren in unkomprimiertes TIFF. Ich kann das hier posten, wenn es helfen würde. – Nate

+0

das wäre toll! –

+0

Nur gefunden, es gibt bereits eine. NET-Integration: http://www.pixel-technology.com/freeware/tynet2/ –

1

Sie suchen im Wesentlichen nach der CAPTCHA circumvention tools verschiedene Forscher haben versucht, einige mit Erfolg. Ein anderer Ansatz wäre, Glättungsalgorithmen zu verwenden, um 96 DPI-Erfassungen zu interpolieren und sie in 300 DPI zu konvertieren (z. B. Photoshop) und dann Standard-OCR-Werkzeuge zu verwenden.

+0

Ich bin nicht auf der Suche nach CAPTCHA Löser - keiner der Text wird auf diese Weise verschlüsselt werden - aber das wird trotzdem helfen. =) –

0

Verwenden Sie die erste Antwort (OCR-Software) und für die Bildschirmaufnahme könnten Sie wahrscheinlich ein PRNTSCRN (Druckbild) Zeichen und dann den Inhalt der Zwischenablage (BMP) in einen TIFF CONVERT.

Hoffnung diese Ihnen helfen, ein wenig mehr in die Venture