'다중카메라'에 해당되는 글 1건

  1. 2012.12.21 openCV webcam 다중 연결



한 프로그램에서 두 대의 연결된 USB 웹캠의 영상을 출력하려고 하였다.

 

그런데 두 프로그램 중 하나의 카메라 영상만이 출력되었다.

 

CvCapture* capture1 = cvCaptureFromCAM(0);
CvCapture* capture2 = cvCaptureFromCAM(1);

 

이런 식으로 하면 이론적으로는 두 대의 카메라 영상이 capture1, capture2에 잡혀야 하는데

 

도무지 의도하는대로 작동하지 않았다.

 

 

몇 시간을 고생하다가 해결책을 찾았는데

 

독립된 USB 버스(BUS)에 각각의 카메라를 연결하면 되는 것이었다.

 

즉, 나는 하나의 웹캠은 컴퓨터 본체의 앞면 USB 포트에 연결하고,

 

나머지 하나의 웹캠은 본체의 뒷면 USB 포트에 연결함으로써 이 문제를 해결하였다.

 

 

 

 

* 참고: cvGetCaptureDomain() 함수를 이용하면 연결된 카메라의 도메인 값을 얻어올 수 있다.

 

연결되지 않았거나 알 수 없는 장치라면 CV_CAP_ANY를 반환한다. 이외의 반환되는 값들은 다음과 같이 정의되어 있다. (highgui_c.h 참고)

 

값들은 cvCaptureFromCAM()를 호출할 때 매개변수로 넣을 수 있다.  ( index = camera_index + domain_offset (CV_CAP_*) )

 

참고한 OpenCV 버전은 2.4.3 이다.

 

 

    CV_CAP_ANY      =0,     // autodetect

    CV_CAP_MIL      =100,   // MIL proprietary drivers

    CV_CAP_VFW      =200,   // platform native
    CV_CAP_V4L      =200,
    CV_CAP_V4L2     =200,

    CV_CAP_FIREWARE =300,   // IEEE 1394 drivers
    CV_CAP_FIREWIRE =300,
    CV_CAP_IEEE1394 =300,
    CV_CAP_DC1394   =300,
    CV_CAP_CMU1394  =300,

    CV_CAP_STEREO   =400,   // TYZX proprietary drivers
    CV_CAP_TYZX     =400,
    CV_TYZX_LEFT    =400,
    CV_TYZX_RIGHT   =401,
    CV_TYZX_COLOR   =402,
    CV_TYZX_Z       =403,

    CV_CAP_QT       =500,   // QuickTime

    CV_CAP_UNICAP   =600,   // Unicap drivers

    CV_CAP_DSHOW    =700,   // DirectShow (via videoInput)

    CV_CAP_PVAPI    =800,   // PvAPI, Prosilica GigE SDK

    CV_CAP_OPENNI   =900,   // OpenNI (for Kinect)
    CV_CAP_OPENNI_ASUS =910,   // OpenNI (for Asus Xtion)

    CV_CAP_ANDROID  =1000,  // Android

    CV_CAP_XIAPI    =1100,   // XIMEA Camera API

    CV_CAP_AVFOUNDATION = 1200  // AVFoundation framework for iOS (OS X Lion will have the same API)

 

Posted by Kugi
,