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  }

 通过多次的调用cvCaptureFromCAM来实现驱动多个摄像头。

你可能感兴趣的:(opencv)