Exception non gérée à 0x7c812afb - openCV

Résolu
cs_souma86 Messages postés 15 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 28 novembre 2011 - 12 oct. 2011 à 23:15
cs_souma86 Messages postés 15 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 28 novembre 2011 - 28 nov. 2011 à 12:26
Bonjour,

Je travail sur une application qui affiche deux flux vidéos provenant de deux camera. Pour l'affichage j'utilise la bibliothèque Open CV, et se passe bien. Mais quand j’arrête l’exécution, une Exception s'affiche :" Exception non gérée à 0x7c812afb dans Test2.exe*: Exception Microsoft C++*: cv::Exception à l'emplacement mémoire 0x0011fc44.."
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    CvCapture *capture = 0;
    CvCapture *capture1 = 0;
    IplImage  *frame = 0;
    IplImage  *frame1 = 0;
    int key = 0;
 
    /* initialize camera */
    capture = cvCaptureFromCAM( 0 );
    capture1 = cvCaptureFromCAM( 1 );
 
/* always check */
    if ( !capture ) {
        fprintf( stderr, "Cannot open initialize webcam!\n" );
        return 1;
    }
if ( !capture1 ) {
        fprintf( stderr, "Cannot open initialize webcam!\n" );
        return 1;
    }
 
    /* create a window for the video */
    cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );
    cvNamedWindow( "result1", CV_WINDOW_AUTOSIZE );
 
    while( key != 'q' ) {
        /* get a frame */
        frame = cvQueryFrame( capture );
frame1 = cvQueryFrame( capture1 );
 
        /* always check */
        if( !frame ) break;
if( !frame1 ) break;
 
/* display current frame */
        cvShowImage( "result", frame );
cvShowImage( "result1", frame1 );
key = cvWaitKey( 50 );
    }
 
    /* free memory */
        cvDestroyWindow( "result" );
cvDestroyWindow( "result1" );
        cvReleaseCapture( &capture );
cvReleaseCapture( &capture1 );
cvReleaseImage(&frame);
cvReleaseImage(&frame1);
    return 0;
}


Je sais pas où est le problème? et d'où vient cette exception?
Est ce qu'il quelqu'un connait le problème ou a une idée qui aide de résoudre cette Exception?
Merci d'avance.

3 réponses

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
14 oct. 2011 à 19:06
salut,

Si ton problème se présente à la fermeture, il doit se trouver dans cette partie:
/* free memory */
cvDestroyWindow( "result" );
cvDestroyWindow( "result1" );
cvReleaseCapture( &capture );
cvReleaseCapture( &capture1 );
cvReleaseImage(&frame);
cvReleaseImage(&frame1);

Tu dois certainement liberer un objet qui se retrouve utilisé dans une fonction suivante. Es-tu sur de l'ordre d'appel de ces fonctions ?

@++
3
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
13 oct. 2011 à 09:06
Bonjour,
Ne pourrais-tu pas passer en mode debug et répérer, en faisant du pas à pas, l'instruction en cause?


louis
0
cs_souma86 Messages postés 15 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 28 novembre 2011
28 nov. 2011 à 12:26
Merci bien Patatalo. c'est résolu :)
0
Rejoignez-nous