Bonjour,

Je viens d'installer OpenCV2.0, mon compilateur est QtCreator sous winXP.

Voici les problèmes auxquels je suis confronté depuis plusieurs jours:

1) En utilisant le gestionnaire des tâches, je constate une fuite mémoire sur ce bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
   IplImage* im = cvLoadImage("monPath",1);
   cvReleaseImage(&im);
Je n'ai pas trouvé grand chose de compréhensible sur le sujet pour le moment. Avez-vous constaté un pb avec cette fonction?

2) D'après la doc Opencv, la fonction cvCvtImage prend en arguments des images pouvant être codées sur 16bits.
J'ai besoin de colorer le buffer sortie de ma carte d'acquisition (appelé m_buffer)

Je crée donc 2 variables externes qui sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
   IplImage* imageGray = 0, *imageRGB = 0;
imageGray va me servir d'image grise à convertir en image couleur en utilisant la fonction d'opencv.

puis, je les initialise dans le constructeur de ma classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
   imageGray   =   cvCreateImage(cvSize(748*8,466),IPL_DEPTH_16U,1);
   imageRGB    =   cvCreateImage(cvSize(748*8,466),IPL_DEPTH_16U,3);
Ces 2 images vont être utilisées dans une fonction de rafraichissement (genre draw() ou update(), bref, une fonction appelée régulièrement pour rafraichir mon écran)

Voici l'endroit où le programme me plante sans pitié ( à la ligne cvCvtColor )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
  cvGetRawData(imageGray,&grayPtr);
  unsigned short *tmp_ptr = m_buffer;  // m_buffer contient l'image à rafraichir
 
  for(int nbOfLines = 0; nbOfLines<466 ; ++nbOfLines){
     memcpy(grayPtr , tmp_ptr , imageGray->width*2); // *2 car copie sur 2 octets...
     grayPtr     += imageGray->widthStep;
     tmp_ptr    += imageGray->width;
   }
  cvCvtColor(imageGray,imageRGB,CV_BayerGR2RGB);
 
  cvShowImage("image grise",imageGray);
  cvShowImage("image couleur",imageRGB);
Je précise que si je commente cvCvtColor, mes 2 images (grise et couleur) s'affichent correctement.
Je précise aussi qu'avec des buffers sur 8 bits, le code ci-dessus passe sans problème.

Auriez-vous une idée d'où ce plantage peut venir?

Merci pour votre aide.
Fab