IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Problème avec cvCornerHarris et cvMinMaxLoc


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut Problème avec cvCornerHarris et cvMinMaxLoc
    bonjour tout les monde!je cherche a implémenté le detecteur d harris avec opencv!j ai éssayé un petit code que j ai écrie mais ça bug!voila le code:
    #include <cv.h>
    #include <cvaux.h>
    #include <highgui.h>
    #include <cxcore.h>
    void main()
    {


    int block_size=3;
    int aperture_size=3;
    double k=0.04;
    double *minVal, *maxVal;
    CvPoint *minLoc=NULL, *maxLoc=NULL;
    CvRect cornersOI;
    IplImage*img=cvCreateImage(cvSize(320,240),IPL_DEPTH_8U,1);
    img=cvLoadImage("im2-1.pgm",1);

    IplImage*gray=cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);
    printf("%d %d",img->width,img->height);
    cvCvtColor( img,gray,CV_BGR2GRAY );

    IplImage* harris_responce=cvCreateImage(cvSize(gray->width,gray->height),IPL_DEPTH_32F,1);

    cvCornerHarris(gray,harris_responce, block_size, aperture_size, k );

    cornersOI =cvRect(i,j,2,2);

    cvSetImageROI(harris_responce,cornersOI);

    cvMinMaxLoc(harris_responce, minVal, maxVal, minLoc, maxLoc,0);



    }

    ça bug au niveau de cvminmaxloc et j arrive pa a trouvé ou je me suis trompé!quelqu un peut m aider svp?merci d avance.

  2. #2
    Membre expérimenté Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Par défaut
    quand tu dis ça bug, ça fait quoi exactement parce que un bug c'est vaste

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut salut
    hello!d abord merci de vouloir m aider!ben il y a un message qui s affiche " detection.exe a rencontré un probleme et doit fermer....veuillez signaler ce probleme a microsoft...." et il me propose soit de débuger ou envoyer un rapport d 'erraur!voila j espere que g été le plus claire possible!et encore merci.

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut salut
    j ai oublié de préciser!je crois enfin je suis sure que c est au niveau de cvminmaxloc que ça ne va pa....

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut
    rebonjour!!!g trouvé la sol!le probleme est dans le passage des parametres a la fonction cvminmaxloc! maxval,minval,maxlocet minloc ne doivent pas etre déclaré comme des pointeurs donc on remplace par:
    double minVal, maxVal;
    CvPoint minLoc, maxLoc;
    ...
    ...
    cvMinMaxLoc(harris_responce, &minVal, &maxVal, &minLoc, &maxLoc,NULL);
    ..
    voila merci a tous et j espere que ça sera utile pour ceux qui avait ce probleme.

  6. #6
    Membre confirmé Avatar de ludo86
    Homme Profil pro
    Développement applications iOS/android
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développement applications iOS/android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Bonjour,

    Je post ici mon problème car il est analogue à celui traité ici.

    Mon programme compile et s'éxécute correctement. Cependant apres éxécution du Harris j'obtiens une image noire.

    Je ne pense pas que ce soit normal. D'où pourrait provenir le problème?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    IplImage* originalPicture = cvLoadImage("corner.bmp");
    IplImage* greyPicture = cvCreateImage(cvGetSize(originalPicture),IPL_DEPTH_8U,1);
    IplImage* smoothPicture = cvCloneImage(greyPicture);
    IplImage* detectingCorner = cvCreateImage(cvGetSize(greyPicture),IPL_DEPTH_32F , 1);
     
    cvConvertImage(originalPicture,greyPicture);
    cvSmooth(greyPicture,smoothPicture,CV_MEDIAN,3,3);
    cvCornerHarris(smoothPicture,detectingCorner,3,3,0.04);
     
    cvNamedWindow("Image à traiter",CV_WINDOW_AUTOSIZE);
    cvNamedWindow("Image adoucie",CV_WINDOW_AUTOSIZE);
    cvNamedWindow("Coin",CV_WINDOW_AUTOSIZE);
     
    if(greyPicture)
    	cvShowImage("Image à traiter",greyPicture);
     
    if(smoothPicture)
    	cvShowImage("Image adoucie",smoothPicture);
     
    if(detectingCorner)
    	cvShowImage("Coin",detectingCorner);
     
    cvWaitKey(0);
    cvDestroyWindow("Image à traiter");
    cvDestroyWindow("Image adoucie");
    cvDestroyWindow("Coin");
     
    cvReleaseImage(&originalPicture);
    cvReleaseImage(&greyPicture);
    cvReleaseImage(&smoothPicture);
    cvReleaseImage(&detectingCorner);

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Par défaut
    Citation Envoyé par ludo86 Voir le message
    Bonjour,

    Je post ici mon problème car il est analogue à celui traité ici.

    Mon programme compile et s'éxécute correctement. Cependant apres éxécution du Harris j'obtiens une image noire.

    Je ne pense pas que ce soit normal. D'où pourrait provenir le problème?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    IplImage* originalPicture = cvLoadImage("corner.bmp");
    IplImage* greyPicture = cvCreateImage(cvGetSize(originalPicture),IPL_DEPTH_8U,1);
    IplImage* smoothPicture = cvCloneImage(greyPicture);
    IplImage* detectingCorner = cvCreateImage(cvGetSize(greyPicture),IPL_DEPTH_32F , 1);
     
    cvConvertImage(originalPicture,greyPicture);
    cvSmooth(greyPicture,smoothPicture,CV_MEDIAN,3,3);
    cvCornerHarris(smoothPicture,detectingCorner,3,3,0.04);
     
    cvNamedWindow("Image à traiter",CV_WINDOW_AUTOSIZE);
    cvNamedWindow("Image adoucie",CV_WINDOW_AUTOSIZE);
    cvNamedWindow("Coin",CV_WINDOW_AUTOSIZE);
     
    if(greyPicture)
    	cvShowImage("Image à traiter",greyPicture);
     
    if(smoothPicture)
    	cvShowImage("Image adoucie",smoothPicture);
     
    if(detectingCorner)
    	cvShowImage("Coin",detectingCorner);
     
    cvWaitKey(0);
    cvDestroyWindow("Image à traiter");
    cvDestroyWindow("Image adoucie");
    cvDestroyWindow("Coin");
     
    cvReleaseImage(&originalPicture);
    cvReleaseImage(&greyPicture);
    cvReleaseImage(&smoothPicture);
    cvReleaseImage(&detectingCorner);
    Bonjour,

    Je me mets a openCV et ai le meme probleme que ludo86 : cvCornerHarris me donne une image noire pour un code similaire.
    Ca fait un moment que je cherche sur le net et dans mon code ce qui ne va pas, mais aucun indice. Je vous assure ca devient frustrant.
    J'en viens a me demander si c'est normal d'avoir une image noire ?

    Svp si vous pouviez me donner un coup de main.

    Merci d'avance.

    Vincent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo