Ocr tesseract probleme picturebox

Résolu
al78310 Messages postés 45 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 29 mai 2016 - 28 mai 2016 à 20:46
al78310 Messages postés 45 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 29 mai 2016 - 29 mai 2016 à 13:22
Bonjour,
Je suis en train d'essayer d' utiliser emgu tesseract version 2.4.
Tout se passe bien, mais lorsque je compile, le programme démarre mais la picturebox défile de gauche à droite puis disparait du form...J'ai fais une vidéo de mon écran :

https://youtu.be/WXQlCwX_tjE

J utilise visual studio 2013, voici le code que j utilise ainsi que la video-tuto

https://www.youtube.com/watch?v=Kjdu8SjEtG0
Imports Emgu.CV
Imports Emgu.Util
Imports Emgu.CV.OCR
Imports Emgu.CV.Structure

Public Class Form1

Dim OCRz As Tesseract = New Tesseract("tessdata", "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ON­LY)
Dim pic As Bitmap = New Bitmap(270, 100)
Dim gfx As Graphics = Graphics.FromImage(pic)

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

'If Windows XP
gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 4, Me.Location.Y + PictureBox1.Location.Y + 30), New Point(0, 0), pic.Size)
PictureBox1.Image = pic

'If Windows 7
'gfx.CopyFromScreen(MousePositi­on, New Point(0, 0), pic.Size)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

OCRz.Recognize(New Image(Of Bgr, Byte)(pic))
RichTextBox1.Text = OCRz.GetText
End sub
End class


Quelqu un aurait il une idée pourquoi l'image en transparence défile au lieu de rester fixe?

Merci beaucoup

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 mai 2016 à 21:19
Bonjour,
ta "video" ne permet pas de mettre en évidence ce que tu dis.
Il me semble que ce n'est pas ta picturebox, qui "va de gauche à droite" puis "disparait", mais l'image qui y est affichée (laquelle, apparemment, est une copie d'une partie de ton écran, en fonction de la position du curseur)
J'aurais donc plutôt tendance à penser que ce que tu gères mal n'a rien à voir avec un OCR et tout à voir avec la gestion du déplacement de ton curseur.
Ceci étant dit, je ne connais rien à VB.Net, mais c'est bel et bien là ma conclusion.
0
al78310 Messages postés 45 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 29 mai 2016
28 mai 2016 à 21:37
Salut Ucfoutu,
En fait la picturebox sert a cadrer se que l on veut transformer en text, Elle sert a voir a travers le form cest pour cela que je pense que c est bien la picturebox qui bouge... mais je peux me tromper.
Regarde le deuxieme lien, c est bien un ocr tu verra.
Merci
Bonne soirée.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 mai 2016 à 22:29
Je te le répète donc :
1) l'ocr n'a rien à voir dans le déplacement de ton "rectangle"
2) l'image dans ta picturebox est celle qui se trouve sous le "rectangle". Si le rectangle déborde, plus il déborde et moins il contient de portion d'image de ce qu'il "survole"
3) ce n'est pas ta picturebox qui se déplace et qui se réduit, mais l'image qui y est dessinée.

A moins que tu ne déplaces la picturebox (ce qui revient au même : gestion du déplacement). Mais je ne le crois pas et penses que c'est ton curseur, que tu déplaces.

On ne voit nulle part dans ton code le moindre déplacement (ni de ta picturebox, ni d'un "rectangle", virtuel ou non)

Bref : une fois de plus : les relevés de portions d'image sont UNE chose, l'OCR en est une AUTRE (et je ne comprends pas que cela puisse échapper à ta compréhension de ce que tu fais).

0
al78310 Messages postés 45 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 29 mai 2016
29 mai 2016 à 00:54
J 'ai bien dis "mais je peux me tromper". Donc ne t'énerve pas . Je suis débutant, j’essaye de comprendre,le code, c est pas moi qui l a écrit. C est toi le professionnel donc je te crois ne t inquiète pas .

"les relevés de portions d'image sont UNE chose, l'OCR en est une AUTRE."
Désolé je vais te contredire (mais c est pas pour t'énerver c'est juste pour comprendre...), de mon point de vue (de novice), un OCR est un logiciel qui reconnait les lettres d après une image et c'est bien ce que le code fais, regarde la vidéo, le mec pointe le form sur une image, clic sur le bouton et le texte apparait dans la richtextbox.... Encore une fois désolé si je me trompe

Pour finir, merci encore de prendre et d'avoir pris du temps pour m'aider.
Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 29/05/2016 à 07:23
Merci de m'avoir expliqué ce qu'est un OCR !
Ton problème n'est pas l'OCR, mais en amont : l'extraction de la portion d'image que l'OCR doit traiter. Il n'intervient qu'au clic sur ton bouton Button1, pas avant.
J'observe à ce propos (mais rien à voir avec mes "compétences", que je n'ai d'ailleurs pas en VB.Net ...) que lorsque tu cliques sur ce bouton, tu as forcément déplacé ton curseur ... pendant que ton timer continue à tourner ...
Moi, je te laisse là. Un VB.Nettiste passera par là pour t'aider dans ce langage que je ne connais pas.
Mon intervention n'a porté que sur des aspects logiques.

EDIT : j'observe que le code que tu montres semble avoir été "puisé " au même endroit que l'a été le code montré dans cette autre discussion, marquée RESOLUE :
http://codes-sources.commentcamarche.net/forum/affich-1647376-probleme-alignement-ou-orientation-ocr-arabe
La seule différence entre vous deux est la présentation du résultat (par l'OCR à proprement parler) du fait de la langue utilisée (qui se lit de gauche à droite dans un cas et de droite à gauche dans l'autre). J'ignore maintenant si l'image est inversée ou non, dans l'un des deux cas, avant intervention de l'OCR. A toi d'analyser ce qu'en dit le mode d'emploi (pour son paramétrage éventuel) du programme en question.


EDIT 2 : et va donc lire (comme je viens de le faire) cette discussion :
http://www.scriptscoop2.com/t/abecd703614f/vb.net-optical-character-recognition-emgu.html
qui montre assez clairement la séparation qu'il convient de faire entre l'extraction de l'image à traiter par l'OCR et l'intervention de l'OCR.
Cette lecture t'apportera peut-être la solution à ta difficulté (l'extraction de l'image à traiter)

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
al78310 Messages postés 45 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 29 mai 2016
29 mai 2016 à 08:22
"Merci de m'avoir expliqué ce qu'est un OCR ! " ah je t avais dis c’était pas pour t énerver :D
Oui j avais déjà lu le premier de tes lien, intéressant, mais vu que ce n étais pas le mème problème, j ai assez vite abandonné ce lien... Je vais y rejeter un coup d œil.
Par contre ton deuxième lien parait excellent, c' est le même problème. Je l'ai pas trouvé sur yahoo, merci
Même sans être un VB.Nettiste, ce que tu m'explique m'aide grandement.
Encore merci.
A plus tard
0
al78310 Messages postés 45 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 29 mai 2016
29 mai 2016 à 08:32
Parfait, le deuxieme lien a resolu mon probleme
Je met http://www.scriptscoop2.com en favoris
Merci encore
Bonne continuation
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 mai 2016 à 09:36
Bien
Veux-tu alors bien libérer cette discussion (un clic sur le tag RESOLU) au niveau de ton tout premier message) ?
Merci d'y penser.
0
al78310 Messages postés 45 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 29 mai 2016
29 mai 2016 à 13:22
ah oui exact ;)
Salut
0
Rejoignez-nous