什么都不懂,快疯了,我用的是eclipse C++,然后装好了Opencv,到底怎么把摄像头打开,有木有大神来帮帮我~~是linux系统下的LinuxOpenCV摄像头EclipseC++

解决方案 »

  1.   

    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来实现驱动多个摄像头。