Bonjour tous le monde,

Je suis en train de developer un logiciel ou je dois capturer un flux video qui sera connecté á l'ordinateur via un adaptateur Video / USB.

Travaillant avec Qt, j'avais commencé a utiliser la class QCamera qui fonctionnait plus ou moins avec une webam.

Depuis j'ai acqui un adaptateur video ENCORE (ENMVG-3) et ce que j'avais fait sur Qt plante avec cette source video.

Je me suis donc tourné vers OpenCV,mon probléme dans ce cas est que lorsque je veux lire la source video, j'arrive directement sur un écran bleu (bsod). Si je deconnecte l'adaptateur USB, je n'ai plus ce BSOD.

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
 
using namespace cv;
using namespace std;
 
int main( int argc, const char** argv )
{
    CvCapture* capture = 0;
    Mat frame, frameCopy, image;
 
    capture = cvCaptureFromCAM( CV_CAP_DSHOW ); //0=default, -1=any camera, 1..99=your camera
    if( !capture )
    {
        cout << "No camera detected" << endl;
    }
 
    cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );
 
    if( capture )
    {
        cout << "In capture ..." << endl;
        for(;;)
        {
            IplImage* iplImg = cvQueryFrame( capture );
            frame = iplImg;
 
            if( frame.empty() )
                break;
            if( iplImg->origin == IPL_ORIGIN_TL )
                frame.copyTo( frameCopy );
            else
                flip( frame, frameCopy, 0 );
 
            cvShowImage( "result", iplImg );
 
            if( waitKey( 10 ) >= 0 )
                break;
        }
        // waitKey(0);
    }
 
    cvReleaseCapture( &capture );
    cvDestroyWindow( "result" );
 
    return 0;
}
Quels est la raison de ce BSOD et sinon quels autres solutions existent pour pouvoir capturer une video?