2012-11-04 2 views
1

1) (업데이트 쿠분투 리눅스를) OpenCV의와OpenCV의 멀티 카메라 처리 문제

VIDIOC_STREAMON을 두 로지텍 C310 카메라를 처리하는 동안이 오류를 얻을 :

전체 오류 로그 장치에 남아있는 공간은

다음과 같다
**IDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument** 
VIDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument 
**libv4l2: error turning on stream: No space left on device** 
**VIDIOC_STREAMON: No space left on device** 
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /home/rjdp/Computer_Vision/0_Installers/OpenCV-2.4.2/modules/core/src/array.cpp, line 2482 
terminate called after throwing an instance of 'cv::Exception' 
    what(): /home/rjdp/Computer_Vision/0_Installers/OpenCV-2.4.2/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat 

2) 2 개의 카메라를 처리 할 때만 발생합니다. 기본값은 640x480입니다. 나는 여전히 코드에서 해상도를 320x240으로 낮추려고 노력했는데이 또한 작동하지 않았다.

3) 다른 사이트의 & 다른 게시물을 많이 검색했습니다. 어떤 USB 사용 가능한 대역폭이 충분하지 않다고 나에게 말했다. 그래서 나는 또한 실패 :(

내 질문은 뒷면에 전면 USB & 하나에 하나의 캠을 연결하려고 :

이 가능 대역폭/메모리 & 실행이 문제를 해결하기 위해 두 함께 OpenCV의 또는 이상의 카메라 2.4.2 ??을 OpenCV는 I/O가 그래서 난 압축 MPEG 모드 대신 대역폭의 일반 모드 소비와 입력 스트림을 일부는 FFmpeg 명령을 내 카메라 하드웨어를 말할 수 처리 는 FFmpeg를 사용 .

01 23,516,

코드는 다음과 같습니다 : 웹캠이 USB 버스에서 사용 가능한 모든 대역폭을 accupies 이후

PCI의 USB 확장 카드를 사용
#include "opencv2/opencv.hpp" 
#include <stdio.h> 
using namespace cv; 

int main(int, char**) 
{ 
    VideoCapture cap01(0); // open the default camera 
    cap01.set(CV_CAP_PROP_FRAME_WIDTH,320); 
    cap01.set(CV_CAP_PROP_FRAME_HEIGHT,240); 
    //sleep(1); 
    if(!cap01.isOpened()) // check if we succeeded 
     return -1; 
    namedWindow("Camera01",1); 

    VideoCapture cap02(1); // open the default camera 
    cap02.set(CV_CAP_PROP_FRAME_WIDTH,320); 
    cap02.set(CV_CAP_PROP_FRAME_HEIGHT,240); 
    if(!cap02.isOpened()) // check if we succeeded 
     return -1; 
    namedWindow("Camera02",1); 

    for(;;) 
    { 
     Mat frame, frame_1; 
     //Mat frame02; 
     cap02 >> frame; 
     imshow("Camera01", frame); 
     if(waitKey(30) >= 0) break; 
     Mat frame_1; 
     cap02 >> frame_1; 
     imshow("Camera02", frame_1); 
     if(waitKey(30) >= 0) break; 
    } 

    return 0; 
} 

답변

0

나를 위해 같은 문제를 해결했다. pci usb 확장 카드를 사용하면 두 번째 웹캠을 연결할 수 있습니다.

+0

단일 USB 버스에 연결된 모든 웹캠의 대역폭을 낮추는 방법이 있습니까? (해상도를 낮춤)? 그렇게. 나는 bcz를 보았을 때 저해상도로 운영되는 많은 상점에서 보안 카메라를 보았습니다. – Rajdeep

+0

PCI 카드 솔루션이 잘 작동 함 : D : D – Rajdeep