Bonjour à tous.
Je travail actuelement sur un projet de robot suiveur de lazer, et je suis bloqué sur une fonction opencv : cvCvtColor(...,...,...)
Je tiens à préciser que je travail sur LINUX.

En me balladant sur internet, j'ai compris que le premier argument correspond à l'image de départ, que le second argument correspond à l'image destinataire, et que le dernier argument correspond aux couleurs.

Voila ce que j'ai pour le moment :



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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifdef _CH_
#pragma package <opencv>
#endif
 
#ifndef _EiC
#include "cv.h"
#include "highgui.h"
#include <ctype.h>
#include <stdio.h>
#endif
 
int main( int argc, char** argv )
{
 
 
    CvCapture* capture = 0;	//Initialisation de la cam.
    capture = cvCaptureFromCAM( 0 );
 
    if( !capture )		//Si erreur lors de l'initialisation de la Cam.
    {
        fprintf(stderr,"Could not initialize capturing...\n"); 
        cvWaitKey(0);		//fermeture de la fenetre
        return -1;
    }
 
     //Fenetre de visualisation de la CAM originale :
 
    cvNamedWindow( "capture", 0 );
    //Fenetre de visualisation de la CAM au niveau du gris.
    cvNamedWindow( "captureGrey", 0);	
 
 
    for( ;; )
    {
        IplImage* frame = 0;	
        IplImage* frameGrey = 0;
        int i;
 
        frame = cvQueryFrame( capture );	//On recupere l'image original 
 
 //Recupere l'image situé dans "frame" puis la ré-introduit dans "frameGrey" en Noir et Blanc: 
 
        cvCvtColor(frame,frameGrey,CV_RGB2GRAY); 
 
        if( !frame )
            break;
 
 
        cvShowImage("capture", frame );	//Affichage de l'image recuperée.
	cvShowImage("captureGrey", frameGrey );	//Affiche de l'image modifiée.
        cvWaitKey(10);	//Si argument = 0, alors attente qu'une touche soit préssée, ici fontionnement en mode CAM.
 
    }
 
    cvReleaseCapture( &capture );
    cvDestroyWindow("capture");  //Libère l'espace mémoire utilisé.
    cvDestroyWindow("captureGrey"); //Libère l'espace mémoire utilisé.
 
    return 0;
}
 
#ifdef _EiC
main(1,"laplace.c");
#endif
balise code ajouté par mongaulois. Merci d'y faire attention la prochaine fois



Cela ne fonctionne pas et un message d'erreur apparait dans la console. L'aquisition de l'image fonctionne bien, car en enlevant : cvCvtColor(frame,frameGrey,CV_RGB2GRAY);
Je récupère bien une fenêtre avec la visualisation de la webcam.

Quelqu'un pourrait-il m'éclairer?
Merci.