Hough de droite

Signaler
Messages postés
25
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
17 juin 2011
-
Messages postés
25
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
17 juin 2011
-
slt tt le monde
j'ai un petit probleme dans l'implementation de l'algorithme de detection de droite (par la transformée de hough en c++)...
dans main j'ai fait l'appel de la fonction comme suit:

CImage *img9,img10,img11,img12,img13,img14;
img9=new CImage("3.jpg");
HWND hwnd;
hwnd=0;
img9->Sobel(GRAY,&img10)img10.Threashold(GRAY,2,&img11); 
img11.Hough(&img12);
img12.Threashold(GRAY,2,&img13);
img13.HoughInv(&img14,NULL);
img14.DrawCosinus(10,80,10.0);
img14.DrawLine(10,12,80,50);
img14.Save(hwnd,"h.jpg");

ca me donne une un "dessin echoué"  pouvez vs m'aider??
NB: j'ai utilisé le code qui se trouve dans le lien suivant :
 http://www.cppfrance.com/codes/DETECTION-DROITES-DANS-IMAGE-HOUGH_43486.aspx

8 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Ces deux lignes sont de trop.
img14.DrawCosinus(10,80,10.0);
img14.DrawLine(10,12,80,50);
Regarde bien dans la source que tu as sité comment la chaine du traitement est faite. 
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Autre chose, si tu mets
img13.HoughInv(&img14,NULL);
Alors ImgHough=NULL;
et Cette ligne plantera dans HoughInv
ImgHoughInv->DrawLine(X,Y,Theta,ImgHough->m_Gris[i][j]);

Faut remplacer comme ceci;
ImgHoughInv->DrawLine(X,Y,Theta,255);


A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
25
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
17 juin 2011

Slt
je veux seulement enregistrer le resultat de detection de droite dans un fichier independant
c'est pour cela j'ai procedé comme suit:

CImage *Img=0,*ImgSobel=0,*ImgHoughInv=0,*ImgHough=0,*ImgHough_Seuil=0,*ImgSobel1,*ImgHough_Seuil1;
int Seuil_Sobel,Seuil_Hough;
char *ImgName;
Seuil_Sobel=128;
Seuil_Hough=208;


Img->Sobel(GRAY,ImgSobel);
ImgSobel->Threashold(GRAY,Seuil_Sobel,ImgSobel);


ImgSobel->Hough(ImgHough);
ImgHough->ContrasteAutomatique();


*ImgHough_Seuil=*ImgHough;
ImgHough_Seuil->Threashold(GRAY,Seuil_Hough,ImgHough_Seuil1);
HWND hwnd;
hwnd=0;
ImgHough_Seuil1->HoughInv(ImgHoughInv,ImgHough);
ImgHoughInv->Save(hwnd,"ya rbbi.jpg");

mais ca ne me donne aucune resultat,,je sais plus qoi faire!!!!!!!!

Merci de votre patience
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Pour commencer, la fonction save enregistre en bmp pas en jpg: met plutôt :
ImgHoughInv->Save(hwnd,"ya rbbi.bmp");
Et sauvegarde une image à chaque étape pour voir si tu as bien se que tu souhaites.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
25
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
17 juin 2011

Slt,
j'ai essayé ce que vs m'avez conseillé de faire,càd j'ai enregistrer a chaque etape une image pour savoir d'ou vient l'erreur,
mais ca me donne un dessin echoué dans quand j'applique  la methode :void Hough(CImage *ImgHough);

voila le code que j'utilise :
 CImage *Img,ImgSobel,ImgHoughInv,ImgHough,ImgHough_Seuil,ImgSobel1,ImgHough_Seuil1;

HWND hwnd;
hwnd=0;
Img = new CImage("3.jpg");

Img->Sobel(GRAY,&ImgSobel);
ImgSobel.Threashold(GRAY,128,&ImgSobel1);
ImgSobel1.Save(hwnd,"ya rbbi.bmp");


ImgSobel1.Hough(&ImgHough);
ImgHough.ContrasteAutomatique();
ImgHough.Save(hwnd,"ya rbbiiii.bmp");  // dans cette etape ca me donne dessin echoué
/*
ImgHough_Seuil=ImgHough;
ImgHough_Seuil.Threashold(GRAY,208,&ImgHough_Seuil1);


ImgHough_Seuil1.HoughInv(&ImgHoughInv,&ImgHough);
ImgHoughInv.Save(hwnd,"ya rbbii.bmp");*/

alors que puis je  faire??
Messages postés
25
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
17 juin 2011

personne ne peut m'aider?vraiment je me ss bloqué a ce niveau la
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
La fonction Hough retourne une image qui est une sorte de compteur. Vérifie bien les valeurs des pixels avant d'enregistrer l'image.Tu peux aussi debugger la fonction save en appelant la fonction getlasterror() si une fonction windows echoue. Comme ca tu auras plus d'information sur ce qui se passe.
A+

____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
25
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
17 juin 2011

jusqu'a mnt je sais pas d'ou vient le pb,je peux vs envoyer le code pour que le verifier(si c'est possible bien sur)??