Page 1 sur 1

[T] Reconnaitre du texte affiché à l'écran

Posté : sam. 03 oct. 2009 16:52
par timmalos
Il arrive souvent qu'on nous demande comment reconnaitre du texte affiché à l'écran quand toutes les solutions possibles ont été épuisées. Comme certains d'entre vous ne vont jamais sur le forum Anglais je post ce lien qui sera surement très utile.
Développé par seangriffin grâce à la "librairie" Tesseract distribuée par Google, cet UDF a de beaux jours devant lui.

:arrow: Lien Direct
http://www.autoitscript.com/forum/index ... opic=89542
REQUIREMENTS:

* AutoIt3 3.2 or higher
* Tesseract 2.01 or above


Amusez Vous Bien,
Tim

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : lun. 05 oct. 2009 14:33
par RomainR
Bonjour,

Je viens de télécharger les scripts contenus dans le liens et j'ai essayer de les faire tourner mais il ne se passe pas grand chose...

Avant d'aller plus loin dans la compréhension du script, je voudrais savoir si il peut convenir à ce que je cherche à faire : j'aimerais, par le biais d'un script evidemment, pouvoir renvoyer le contenu d'une zone de l'écran sous forme d'une chaine de caractères. En l'occurence j'ai une application qui utilise une IHM composée de plusieurs boutons dont le texte change selon les séléctions que l'on fait. Et je souhaiterais être capable de lire le contenu du bouton...

Je précise simplement que l'utilisation de l'autoit windows info n'est pas suffisante pour lire le texte qui m'interesse, c'est pourquoi un OCR me semble nécessaire...

Merci par avance.
@+

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : lun. 05 oct. 2009 17:47
par timmalos
Normalement oui l'utilisation d'un OCR dans ce cas peut s'averer utile. Reste a savoir comment l'utiliser. Je n'ai testé que des exemples simples . Si vous n'y arrivez pas, je pense qu'il faudra demander sur le forum anglais.

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : lun. 05 oct. 2009 18:17
par RomainR
OK merci :)

Juste par curiosité, peux tu m'expliquer rapidement dans quel cas tu es parvenu a te servir du script ? Et sur quel type de fichier ?

Si quelqu'un d'autre est parvenu a se servir d'un OCR basé sur AutpIT permettant de lire le contenu d'une image (.jpg par exemple), ça m'intéresse aussi :wink:

@+

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : lun. 05 oct. 2009 22:09
par timmalos

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : mar. 06 oct. 2009 13:42
par RomainR
Salut timmalos,

J'ai jetté un coup d'oeil à ton lien et tout est là :D Sincèrement merci mille fois : la solution de hendrikhe semble coller parfaitement à ce que je souhaite !

Juste pour info voici comment procéder :

1) Installer Tesseract à l'aide de l'executable téléchargeable ici :
:arrow: http://web.aanet.com.au/seangriffin/Tesseract201.exe

2) Télécharger ensuite le script AutoIT SimpleTesseract.au3 (tesseract légèrement modifié) à l'adresse suivante :
:arrow: http://www.autoitscript.com/forum/index ... h_id=25714

3) Créer un script de ce genre :

Code : Tout sélectionner

include <SimpleTesseract.au3>

$sMessage = _TesseractScreenCapture(0,"",1,3,100,200,200,400,1)
La synthaxe à employer pour la fonction _TesseractScreenCapture est alors la suivante :
_TesseractScreenCapture($get_last_capture = 0, $delimiter = "", $cleanup = 1, $scale = 2, $iLeft = 0, $iTop = 0, $iRight = 1, $iBottom = 1, $show_capture = 0)

En espérant que ça aide et merci encore :wink:

@+

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : mar. 06 oct. 2009 15:10
par timmalos
Pas de soucis, tu as cherché et en plus tu partage pour les autres ;) Merci a toi également.

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : mar. 06 oct. 2009 21:37
par Tlem
Juste au cas ou les liens ne seraient plus bon (un jour), j'ai mis tout ça dans un archive que vous trouverez ici : http://www.autoitscript.fr/download/ind ... seract.zip

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : dim. 14 févr. 2010 18:20
par Guichon
Bonjour,

J'ai découvert récemment AutoIT, car je vais réaliser un stage avec ce logiciel.
J'ai tester les différentes fonctions du script, notamment _TesseractWinCapture mais cela n'aboutit à rien. Ce que j'aimerais c'est récupérer en "String" ce qui est affiché dans la fenêtre.

Par exemple ici, on ouvre Notepad, on écrit dedans et on ferme, vient alors une fenêtre ("Voulez-vous enregistrer les modifications de Sans titre ?")
C'est cette phrase que j'aimerais récupérer.

Code : Tout sélectionner

#include <Tesseract.au3>

Run("notepad.exe")
WinWaitActive("Sans titre - Bloc-notes")
Send("This is some text.")
WinClose("Sans titre - Bloc-notes")
WinWaitActive("Bloc-notes")

Local $LabelsInWin = _TesseractWinCapture(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ; Acquisition des labels affichés à l'écran
MsgBox(0,"Chaînes lues :", $LabelsInWin)


Merci pour votre aide.

Amicalement,

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : dim. 14 févr. 2010 18:53
par timmalos
Dans ce cas il existe beaucoup plus simple : (Tesseract n'est utile qu'en dernier recours, sinon vosu pouvez utiliser des fonctions de bases beaucoup plus simples, documentées et surs de marcher)

Regardez l'aide de la fonction WinGetText()

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : lun. 15 févr. 2010 11:43
par Guichon
Merci timmalos mais c'est justement en ayant pas ce que je voulais avec cette fonction que je me suis intéressé à Tesseract. La fonction WinGetText, me retourne les textes contenus dans les boutons. soit "enregistrer" "ne pas enregistrer" et "annuler" , mais pas la question de la fenêtre.

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : lun. 15 févr. 2010 18:38
par timmalos
En effet, et c'est très bizarre.
Je vais essayer de faire fonctionner l'UDF pour cet exemple

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : sam. 28 août 2010 21:07
par matheod
Bonjour,
aucun moyen de ne pas a avoir a installé Tesseract ?
C'est pas pratique de dire :
installé ceci avant de lancer le script ^^
merci

Re: [T] Reconnaitre du texte affiché à l'écran

Posté : dim. 29 août 2010 21:47
par SrBelial
fais le s'installer automatiquement en silencieux si besoin au lancement du script et voila ^__^