linux 下用opencv 驱动多个摄像头
1 #include "cv.h"
2 #include "highgui.h"
3
4 #include <stdio.h>
5 #include <stdlib.h>
6
7 #ifdef _EiC
8 #define WIN32
9 #endif
12
13 int main( )
14 {
15 CvCapture* capture = 0;
16 IplImage *frame, *frame_copy = 0;
17 CvCapture* capture2 = 0;
18 IplImage *frame2, *frame_copy2 = 0;
19
20 capture = cvCaptureFromCAM(-1);
21 capture2 = cvCaptureFromCAM(-1);
22
23
24 if( capture)
25
26 {
27 for(;;)
28 {
29 if( !cvGrabFrame( capture ))
30 break;
31 frame = cvRetrieveFrame( capture );
32 if( !frame )
33 break;
34 if( !frame_copy )
35 frame_copy = cvCreateImage( cvSize(frame->width,frame->height),
36 IPL_DEPTH_8U, frame->nChannels );
37 if( frame->origin == IPL_ORIGIN_TL )
38 cvCopy( frame, frame_copy, 0 );
39 else
40 cvFlip( frame, frame_copy, 0 );
41
42 cvNamedWindow("cam",1);
43 cvShowImage("cam",frame_copy);
44
45
46
47 ////////////////////////////////////
48 if( !cvGrabFrame( capture2 ))
49 break;
50 frame2 = cvRetrieveFrame( capture2 );
51 if( !frame2 )
52 break;
53 if( !frame_copy2 )
54 frame_copy2 = cvCreateImage( cvSize(frame2->width,frame2->height),
55 IPL_DEPTH_8U, frame2->nChannels );
56 if( frame2->origin == IPL_ORIGIN_TL )
57 cvCopy( frame2, frame_copy2, 0 );
58 else
59 cvFlip( frame2, frame_copy2, 0 );
60
61 cvNamedWindow("cam2",1);
62 cvShowImage("cam2",frame_copy2);
63
64 if( cvWaitKey( 10 ) >= 0 )
65 break;
66
67 }
68
69 cvReleaseImage( &frame_copy );
70 cvReleaseCapture( &capture );
71 cvReleaseImage( &frame_copy2 );
72 cvReleaseCapture( &capture2 );
73 }
74
75
76 }
2 #include "highgui.h"
3
4 #include <stdio.h>
5 #include <stdlib.h>
6
7 #ifdef _EiC
8 #define WIN32
9 #endif
12
13 int main( )
14 {
15 CvCapture* capture = 0;
16 IplImage *frame, *frame_copy = 0;
17 CvCapture* capture2 = 0;
18 IplImage *frame2, *frame_copy2 = 0;
19
20 capture = cvCaptureFromCAM(-1);
21 capture2 = cvCaptureFromCAM(-1);
22
23
24 if( capture)
25
26 {
27 for(;;)
28 {
29 if( !cvGrabFrame( capture ))
30 break;
31 frame = cvRetrieveFrame( capture );
32 if( !frame )
33 break;
34 if( !frame_copy )
35 frame_copy = cvCreateImage( cvSize(frame->width,frame->height),
36 IPL_DEPTH_8U, frame->nChannels );
37 if( frame->origin == IPL_ORIGIN_TL )
38 cvCopy( frame, frame_copy, 0 );
39 else
40 cvFlip( frame, frame_copy, 0 );
41
42 cvNamedWindow("cam",1);
43 cvShowImage("cam",frame_copy);
44
45
46
47 ////////////////////////////////////
48 if( !cvGrabFrame( capture2 ))
49 break;
50 frame2 = cvRetrieveFrame( capture2 );
51 if( !frame2 )
52 break;
53 if( !frame_copy2 )
54 frame_copy2 = cvCreateImage( cvSize(frame2->width,frame2->height),
55 IPL_DEPTH_8U, frame2->nChannels );
56 if( frame2->origin == IPL_ORIGIN_TL )
57 cvCopy( frame2, frame_copy2, 0 );
58 else
59 cvFlip( frame2, frame_copy2, 0 );
60
61 cvNamedWindow("cam2",1);
62 cvShowImage("cam2",frame_copy2);
63
64 if( cvWaitKey( 10 ) >= 0 )
65 break;
66
67 }
68
69 cvReleaseImage( &frame_copy );
70 cvReleaseCapture( &capture );
71 cvReleaseImage( &frame_copy2 );
72 cvReleaseCapture( &capture2 );
73 }
74
75
76 }
通过多次的调用cvCaptureFromCAM来实现驱动多个摄像头。
posted on 2009-10-26 18:53 Homography Matrix 阅读(2180) 评论(0) 编辑 收藏 举报