Ocr tesseract probleme picturebox [Résolu]

Messages postés
45
Date d'inscription
dimanche 4 octobre 2015
Dernière intervention
29 mai 2016
- - Dernière réponse : al78310
Messages postés
45
Date d'inscription
dimanche 4 octobre 2015
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
Afficher la suite 

Votre réponse

9 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
45
Date d'inscription
dimanche 4 octobre 2015
Dernière intervention
29 mai 2016
0
Merci
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.
Commenter la réponse de al78310
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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).

Commenter la réponse de ucfoutu
Messages postés
45
Date d'inscription
dimanche 4 octobre 2015
Dernière intervention
29 mai 2016
0
Merci
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
Commenter la réponse de al78310
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
45
Date d'inscription
dimanche 4 octobre 2015
Dernière intervention
29 mai 2016
0
Merci
"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
Commenter la réponse de al78310
Messages postés
45
Date d'inscription
dimanche 4 octobre 2015
Dernière intervention
29 mai 2016
0
Merci
Parfait, le deuxieme lien a resolu mon probleme
Je met http://www.scriptscoop2.com en favoris
Merci encore
Bonne continuation
Commenter la réponse de al78310
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
45
Date d'inscription
dimanche 4 octobre 2015
Dernière intervention
29 mai 2016
0
Merci
ah oui exact ;)
Salut
Commenter la réponse de al78310

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.