2010-07-27 14 views
8

Existe-t-il des moteurs OCR conçus pour identifier le texte dans les images capturées à l'écran plutôt que dans le texte numérisé? J'ai un projet dans lequel je dois récupérer et identifier du texte dans une application, et aucun des moteurs OCR que j'ai essayés jusqu'ici ne s'est bien comporté avec des captures d'écran.Moteurs OCR conçus pour la lecture d'écran

Idéalement, le moteur devrait bien fonctionner avec la couleur et le bruit de fond, bien que je puisse faire quelques concessions si rien de tel n'est disponible.

Il devra être compatible avec .NET; soit écrit en .NET ou ayant une API .NET-appelable.

+0

Quelle est la différence entre un texte numérisé et une capture d'écran? –

+3

Le texte de la capture d'écran est garanti sur des lignes droites, mais aussi en couleur, avec un bruit de fond coloré. Je cherche à voir s'il existe un moteur OCR spécialement conçu pour lire les captures d'écran. –

Répondre

4

Habituellement, la technologie OCR est réglée pour fonctionner avec du texte numérisé, qui est d'au moins 200 dpi, mais une résolution de 300 dpi est recommandée pour une qualité OCR fiable. Vous devez donc vous efforcer de peaufiner les paramètres et tout ce qui est nécessaire pour que le texte apparaisse à l'écran, ce qui est généralement considéré comme une approximation de 96 ppp.

ABBYY dispose d'un logiciel de capture d'écran OCR: http://www.abbyy.com/screenshot_reader/ qui prouve que sa technologie est capable de fonctionner dans ces conditions. Je l'utilise, ça marche. Ainsi, vous pouvez contacter ABBYY pour OCR SDK: http://www.abbyy.com/ocr_sdk/ (peut être utilisé à partir de .NET)

Ce n'est pas donné, mais cela fonctionne. Disclaimer: Je travaille pour ABBYY

+0

Merci, je vais vérifier. =) –

+0

Ceci est bon pour les images dpi inférieures (par exemple, 96dpi) - j'ouvre cette image de tri dans la visionneuse de photos Windows et le lecteur de capture d'écran utilisé. Mais mon image est 96dpi et la hauteur est 20000 donc il est très long dans ce cas il y a une automatisation comme lecteur de capture d'écran au lieu de capture d'écran et descendre et encore capture d'écran de lecture .. – SIslam

5

J'ai trouvé Tesseract OCR pour être assez solide pour un projet open source. J'ai trouvé qu'il peut même lire et décoder des captchas simples, comme Megaupload. Je pense qu'avec un peu de peaufinage ça pourrait marcher plutôt bien. La seule difficulté est qu'elle n'accepte que des images TIFF non compressées, ce qui peut être gênant.

EDIT: Philip Daubmeier a déjà trouvé une intégration .NET, mais ci-dessous est le code pour convertir un bitmap en TIFF non compressé.

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); 
} 

Cela enregistre dans un fichier, mais la méthode Bitmap.Save peut écrire à un flux aussi.

+0

J'ai intégré cela dans un projet .NET juste en utilisant le exécutable et code à convertir en TIFF non compressé. Je peux poster ça ici si ça peut aider. – Nate

+0

ce serait génial! –

+0

Je viens de trouver qu'il y a déjà une intégration .net: http://www.pixel-technology.com/freeware/tessnet2/ –

1

Vous cherchez essentiellement les CAPTCHA circumvention tools différents chercheurs ont essayé, certains avec succès. Une autre approche consisterait à utiliser des algorithmes de lissage pour interpoler les captures de 96 DPI et les convertir en 300 DPI (par exemple, photoshop), puis utiliser les outils OCR standard.

+0

Je ne cherche pas de solveurs CAPTCHA - aucun texte ne sera brouillé de cette façon - mais cela aidera néanmoins. =) –

0

Utilisez la première réponse (logiciel OCR) et pour la capture d'écran, vous pouvez probablement envoyer un caractère PRNTSCRN (printscreen) puis CONVERTIR le contenu du presse-papiers (bmp) en un tiff.