-
Détecteur de Harris
slt tt le monde
mon probléme maintenant c'est les points d'intéres de harris
j'ai fait appele a la fonction CvCornerHarris(input,output,par1,par2,par3,par4)
input et output c'est des "IplImage * "
mais bien sur sa marche pas .
a la compilation pas de probléme mais au débuging un message s'affiche pr me dire que mes input et mes output ne correspendent pas
merci de me sortir de l'embarat car ****** les points d'interets sont la base de mon projet
2 ) cmt je pourais récupérer les points d'interets de l'image et ou il sont sauvegarder
3 )par la suite je dois estimer une matrice fendamentale je connais la fonction mais je crois pas que sa va marcher au prmier coup dc si vs avez eu une experience de ce genre sa serai sympa de m'aider
merci enormément a tous
-
Quel est le message exact qui s'affiche,
Montre ton code que l'on puisse voir les paramètres que tu passes à cvCornerHarris
Pour la matrice fondamentale ne te limite pas à 8 points et utilise l'algorithme de RANSAC et ca devrait aller tout seul pour le calcul si les points sont bien detectés avec cvCornerHarris
Utilise un cube et non pas un damien plan pour que tout les points utilisés pour le calcul de la matrice fondamental ne soit pas situés dans le même plan
-
voila un exemple de code que j'utilise
IplImage * imgD;
IplImage * imgG;
IplImage * gaussienD;
IplImage * gaussienG;
IplImage * harrisD;
IplImage * harrisG;
// lecture images
imgD = cvLoadImage ("C:/imageD.bmp",1);
imgG = cvLoadImage ("C:/imageG.bmp",1);
CvSize imgSize; // size of visualisation image
int i = 0, j = 0;
imgSize.width = 450; // visualisation image is
imgSize.height = 300; // 640x480 pixels
// creation of a 8 bits depth gray image
harrisD = cvCreateImage( imgSize, 8, 1 );
//affichage images
cvNamedWindow( "image de test..droite", 1 );
cvNamedWindow( "image de test..gauche", 1 );
cvShowImage( "image de test..droite", imgD );
cvShowImage( "image de test..gauche", imgG );
//lissage
cvSmooth( imgD,gaussienD,2,3,3);
cvSmooth( imgG,gaussienG,2,3,3);
//affichage lissage
cvNamedWindow( "lissage droite", 1 );
cvNamedWindow( "lissage gauche", 1 );
cvShowImage( "lissage droite", gaussienD );
cvShowImage( "lissage gauche", gaussienG );
//filtrer
cvCornerHarris( gaussienD, harrisD,3,3,0);
//affichage image filtrée
cvNamedWindow( "points de harris D", 1 );
cvShowImage( "points de harris D", harrisD );
merci encore une fois
-
imgSize.width = 450; // visualisation image is
imgSize.height = 300; // 640x480 pixels
// creation of a 8 bits depth gray image
harrisD = cvCreateImage( imgSize, 8, 1 );
Pas cohérent.
Je te propose de faire :
harrisD = cvCreateImage( cvGetSize(imgSize), 8, 1 );