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

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#1

Message 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
RomainR
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 25 sept. 2009 11:15
Status : Hors ligne

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

#2

Message 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.
@+
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#3

Message 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.
RomainR
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 25 sept. 2009 11:15
Status : Hors ligne

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

#4

Message 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:

@+
RomainR
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 25 sept. 2009 11:15
Status : Hors ligne

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

#6

Message 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:

@+
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#7

Message par timmalos »

Pas de soucis, tu as cherché et en plus tu partage pour les autres ;) Merci a toi également.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#8

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Guichon
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 11 févr. 2010 20:52
Status : Hors ligne

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

#9

Message 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,
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#10

Message 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()
Avatar du membre
Guichon
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 11 févr. 2010 20:52
Status : Hors ligne

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

#11

Message 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.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#12

Message par timmalos »

En effet, et c'est très bizarre.
Je vais essayer de faire fonctionner l'UDF pour cet exemple
matheod
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mer. 07 juil. 2010 23:41
Status : Hors ligne

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

#13

Message 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
Le "ça ne marche pas" est une conséquence commune découlant de l’absence de membres inférieures.
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

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

#14

Message par SrBelial »

fais le s'installer automatiquement en silencieux si besoin au lancement du script et voila ^__^
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Répondre