Page 3 sur 3
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 09:10
par pierrotm777
Tlem a écrit :Je ne sais pas d’où vient l'affichage de cette IP et ce qu'elle concerne, mais n'est-il pas envisageable de la récupérer en dur ?
Sinon, l'autre solution c'est l'OCR (et non l'OIR) et là il vous faudra faire quelques recherches, car j'avais essayé quelque chose du genre avec un succès correct, mais je ne me souviens plus trop de ce que s'était.
C'était peut être l'UDF Tesseract.au3
http://www.autoitscript.com/forum/topic ... n-ocr-udf/
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 11:37
par Tlem
Hahahaha, Pierro qui arrive avec un bon train de retard :
http://www.autoitscript.fr/forum/viewto ... 439#p50439
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 15:51
par Mazk
Voici mon code pour tesseract :
Code : Tout sélectionner
#include <SimpleTesseract.au3>
MsgBox(0, "La fenetre", "met la fenetre")
$ipscr = _TesseractScreenCapture(0, "", 1, 2, 465, 401, 608, 437, 0)
MsgBox(0, "Tess", $ipscr)
ça me retourne une message box avec le titre "Tess" mais il n'y a aucun contenu et un .txt est crée à l'intérieur il y a
Code : Tout sélectionner
Tesseract Open Source OCR Engine
IMAGE::read_header:Error:Can't open file:C:\~ojfzoyw.tif
Tessedit:Error:Read of file failed:C:\~ojfzoyw.tif
Signal_exit 31 ABORT. LocCode: 3 AbortCode: 3
465,401,608,437 c'est le rectangle où "l'ip" est affiché
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 18:37
par mikell
Tiens, essaie ce script, ça va te plaire...
faut bien que je me rachète de ces foutues images
► Afficher le texte
Code : Tout sélectionner
#include <GDIPlus.au3>
#include <Tesseract.au3>
#include <WindowsConstants.au3>
Opt("WinTextMatchMode", -2)
$img = @tempdir & "\img.png"
InetGet ("http://nsa26.casimages.com/img/2011/06/24//110624070800223936.png", $img)
Global $hGUI, $hImage, $hGraphic
$hGUI = GuiCreate("imgtest", 145, 30, 0, 0, $WS_POPUP)
GuiSetState()
_GDIPlus_StartUp()
$hImage = _GDIPlus_ImageLoadFromFile($img)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
Sleep(500)
$text = _TesseractWinCapture("imgtest", "", 0, "", 1, 3, 0, 0, 5, 5, 0)
GuiDelete($hGUI)
MsgBox(0,"",$text)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()
FileDelete($img)
Et MERCI au chef Tlem pour l'idée de Tesseract

Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 20:24
par Mazk
mikell ça me renvoie une messagebox vide ><
EDIT : le $text = _TesseractWinCapture("imgtest", "", 0, "", 1, 3, 0, 0, 5, 5, 0) me semblait pas correct alors j'ai remplacer par $text = _TesseractWinCapture("imgtest", "", 0, "", 1, 3, 0, 0, 130, 20, 0)
Mai ça me renvoie toujours une msgbox vide
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 21:44
par mikell
Ecoute, avec les valeurs que tu as mises c'est normal que la msgbox soit vide...
Fais-moi plaisir et essaie mon script sans le modifier, chez moi il marche parfaitement
Vérifie que tu as bien suivi le protocole d'installation de Tesseract version 2.01
Le script télécharge l'image, l'ouvre dans une GUI, la déchiffre, et affiche le résultat correct dans la msgbox
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 22:04
par MisterASUS
Chez moi il me sort même pas de msg box le script que tu as donné ^^
il va pas jusque là enfait ! il se bloque à
Code : Tout sélectionner
$text = _TesseractWinCapture("imgtest", "", 0, "", 1, 3, 0, 0, 130, 20, 0)
$text = ^ ERROR
>Exit code: 1 Time: 0.831
*part en courant*
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 22:24
par Mazk
mikell j'ai d'abord essayer ton script sans rien modifier sa me mettait juste une msgbox vide et après j'ai tenté de modifier, et l'installation bah s'est bien passé je vais essayé de reinstaller
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 22:56
par mikell
@MisterASUS
Avec toi c'est normal
@Mazk
Surtout utilise bien l'include Tesseract.au3 qui est là
http://www.autoitscript.com/forum/index ... h_id=25139 sans le modifier et installe Tesseract dans C:\Program Files et pas ailleurs
J'ai un peu "assoupli" le script (il marche !)
► Afficher le texte
Code : Tout sélectionner
#include <GDIPlus.au3>
#include <Tesseract.au3>
#include <WindowsConstants.au3>
; télécharge l'image dans répertoire temp
$img = @tempdir & "\img.png"
InetGet ("http://nsa26.casimages.com/img/2011/06/24//110624070800223936.png", $img)
; crée la gui dans le coin haut gauche de l'écran
$hGUI = GuiCreate("imgtest", 160, 50, 0, 0, $WS_POPUP)
GuiSetState()
WinSetOnTop ("imgtest", "", 1)
; met l'image dans la gui
_GDIPlus_StartUp()
$hImage = _GDIPlus_ImageLoadFromFile($img)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
Sleep(500)
; analyse l'image, pour les paramètres voir dans Tesseract.au3
$text = _TesseractWinCapture("imgtest", "", 0, "", 1, 4, 0, 0, 5, 5, 0)
Sleep(500)
; ferme la gui et affiche le texte
GuiDelete($hGUI)
MsgBox(0,"",$text)
; fait le ménage
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()
FileDelete($img)
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 23:28
par Mazk
ça ne fonctionne toujours pas ça me met une msgbox vide ! J'ai même mis Tesseract.au3 a coté de mon script, il est aussi dans include de Autoit et il est bien dans C:\Program Files, j'ai Windows 7 et une résolution de 1024 x 768
Mais pourquoi tu as mis 5,5 dans la fonction de tesseract parce que sinon il va chercher dans un tout petit rectangle et l'image ne sera pas contenu dedans non?
(J'ai aussi testé avec le 5,5 comme tu as mis mais ça me renvoie msgbox vide :s)
Tu as quel résolution d'écran?
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 23:38
par mikell
Mazk a écrit :Mais pourquoi tu as mis 5,5 dans la fonction de tesseract
5, 5 c'est l'indentation, le retrait de 5 px à droite et en bas pour ne pas qu'il analyse les bords de la fenêtre (tesseract lirait le bord droit comme un " | " )
Je suis en 1920 x 1080 mais je ne pense pas que ça ait une importance quelconque
Par contre je suis sous XP SP3, pas Windows7, donc ça pourrait être intéressant de voir sur le forum US à l'adresse que Tlem a donnée si d'autres utilisateurs de w7 ont eu des soucis avec Tesseract ... peut-être mettre tesseract.exe en mode compatibilité XP ?
tu as essayé mon dernier script ?
Re: [..] Lire le texte d'une image
Posté : dim. 26 juin 2011 23:48
par Mazk
Il fallait tout simplement lancer le programme avec les droits d'admin lol !
Merci énormément mikell tu est mon sauveur ! Grâce à toi je vais pouvoir continuer mon projet
Vraiment MERCIII xD
Re: [R] Lire le texte d'une image
Posté : dim. 26 juin 2011 23:54
par MisterASUS
je suis sous win7 et avec le fichier télécharger ca fonctionne !

Bon Boulot ^^
Re: [R] Lire le texte d'une image
Posté : lun. 27 juin 2011 00:06
par mikell

Oufff... résolu après un topic de 53 messages, ça fait plaisir

Re: [R] Lire le texte d'une image
Posté : lun. 27 juin 2011 03:13
par Tlem
Afin de compléter ce sujet, je met à disposition une archive zip qui permettra de rendre l'utilisation de Tesseract autonome (Version 3 avec langue Fr) ainsi que deux exemples (dont un de mikell).
La version 3, bien que plus volumineuse que la V2.04, amène sont lots d'améliorations, donc à conseiller.
Le deuxième exemple montre comment ce passer de l'UDF Tesseract.au3, mais obligera le développement d'une fonction de transformation des images en Tif (avec la V3, la compression est prise en charge).
Si je me souvient bien, il existe un UDF sur le forum Anglais, qui gère la conversion d'une image. Ceci dit, vu la nécessité d'utiliser l'exe et les dépendance de Tesseract, pourquoi ne pas utiliser directement un utilitaire de conversion en ligne de commande. ^^
Vous trouverez l'archive ici :
http://www.autoitscript.fr/download/ind ... rac_V3.zip
Re: [..] Lire le texte d'une image
Posté : lun. 27 juin 2011 09:24
par pierrotm777
Encore une fois pas pas trés gentil, puisque vous ne donniez pas de lien !

Re: [R] Lire le texte d'une image
Posté : lun. 27 juin 2011 10:02
par mikell
Voilà, il ne me reste plus qu'à donner mon exemple de script adapté à la méthode
du boss de Tlem
(donc à utiliser avec son archive zip, en l'appelant par exemple 'Exemple 3' )
► Afficher le texte
Code : Tout sélectionner
#include <GDIPlus.au3>
; télécharge l'image dans répertoire temp
$img = @tempdir & "\img.png"
InetGet ("http://nsa26.casimages.com/img/2011/06/24//110624070800223936.png", $img)
; convertit l'image png au format tif
$img2 = @tempdir & "\img.tif"
_GDIPlus_Startup ()
$hImage = _GDIPlus_ImageLoadFromFile ($img)
_GDIPlus_ImageSaveToFile ($hImage, $img2)
_GDIPlus_ImageDispose ($hImage)
_GDIPlus_ShutDown ()
; analyse l'image
ShellExecuteWait(@ScriptDir & "\tesseract\tesseract.exe", "img.TIF img -l fra", "", Default, @SW_HIDE )
; affiche le texte
ShellExecute("img.txt")
Re: [R] Lire le texte d'une image
Posté : lun. 27 juin 2011 18:04
par pierrotm777
J'avais fait une petite recherche sur le sujet hier et avait trouvé cela sur le site us
http://www.autoitscript.com/forum/topic ... ntry675721