Bonjour à tous,

J'ai écrit un programme qui prend en entré une vidéo couleur et qui en sortie fournit une vidéo en niveau de gris. Mon souci c'est que la transformation en niveau de gris fonctionne mais la vidéo résultante est divisé en 3.
Je ne comprends pourquoi j'ai ce problème pouvez-vous m'aidez svp ?

voici mon code source :
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
 
 
 
#include<opencv/cv.h>
 #include<opencv/highgui.h>
 
 int main( int argc, char* argv[])
{
         CvCapture* capture = 0;
         capture = cvCreateFileCapture( argv[1] );
 
        if(!capture)
                return(-1);
       IplImage* bgr_frame = cvQueryFrame(capture); // initialisation du lecteur                                                                   
        double fps = cvGetCaptureProperty( capture, CV_CAP_PROP_FPS) ; // fps donne la vitesse de deroulement des frames                            
 
        CvSize size = cvSize( (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH),
                              (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT));
 
        CvVideoWriter *writer = cvCreateVideoWriter( argv[2], CV_FOURCC('P','I','M','1'), fps, size,0);
        IplImage* gray_frame = cvCreateImage( size, IPL_DEPTH_8U,1);
 
        // chaque frame est transformee en image gris                                                                                               
       while((bgr_frame = cvQueryFrame(capture)) != NULL)
                {
                        cvCvtColor(bgr_frame, gray_frame, CV_RGB2GRAY);;
 
 
                        cvWriteFrame( writer, gray_frame );
                }
        // liberation de la memoire                                                                                                                 
        cvReleaseVideoWriter(&writer);
        cvReleaseImage( &gray_frame );
        cvReleaseCapture( &capture );
        return(0);
}
le message d'erreur qui s'affiche est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Output #0, mpeg, to 'tata.mpeg':
    Stream #0.0: Video: mpeg1video (hq), yuv420p, 480x360, q=2-31, 11059 kb/s, 90k tbn, 29.97 tbc
[mpeg @ 0xd12520] VBV buffer size not set, muxing may fail