bonsoir,

je voudrais développer un programme utilisant opencv sur une plateforme embarqué mais lorsque je lance le programme de test suivant, j'obtiens un "segmentation fault".
j'obtiens le même résultat sur mon PC lorsque je ne branche pas la webcam...

pourtant, la webcam est bien reconnue sur ma plateforme embarqué:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 046d:08ce Logitech, Inc. QuickCam Pro 5000
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pour l'instant, ma théorie serait un codec qu'utiliserais opencv pour lire le flux vidéo de la webcam qui serait présent sur mon PC et pas sur ma plateforme embarqué. mais ce n'ai qu'une idée... et je ne sais même pas si opencv utilise un codec pour décodé le flux video...


voici le code de teste :

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
#include <opencv/cv.h>
#include <opencv/cxcore.h>
#include <opencv/highgui.h>
 
int main()
{
        CvCapture* capture = cvCaptureFromCAM(0);
        IplImage* frame;
 
        frame = cvQueryFrame( capture );
 
IplImage* img = cvCreateImage(cvSize(150,150), frame->depth, frame->nChannels);
IplImage* gray_out = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U,1);
IplImage* canny_out = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U,1);
 
        cvResize(frame,img,CV_INTER_AREA);
        cvCvtColor(img , gray_out, CV_RGB2GRAY);
        cvCanny( gray_out, canny_out, 70, 100, 3 );
 
        cvReleaseCapture( &capture );
        return 0;
}
si vous avez d'autre piste, n'hésiter pas à m'en faire part.

merci
à bientôt