2011-05-04 7 views
4

실시간으로 고 다이나믹 레인지 비디오를 제작하기 위해 프로젝트 작업 중입니다. 목표는 3 개의 선반 웹캠 (Microsoft LiveCam Studio)으로 수행하는 것입니다. OpenCV 사용을 시작했지만 카메라를 열 때 어려움을 겪고있었습니다. 그래서 나는 곧바로 videoInput으로 뛰어 올랐다. 카메라 두 대를 서로 작동시킬 수 있습니다. 내 노트북에 내장 된 웹캠으로 작업 할 수있는 두 개의 웹캠을 얻을 수 있습니다. 내가 세 가지 모두 웹캠을 실행하려고한다면, 나는 그것이 같은 종류의 두 개의 카메라에 아무런 문제가 없을 것입니다 왜 알아낼 수 없습니다 videoInput.cpp을 조사하고 몇 시간을 소비 한 후3 videoInput 등으로 카메라 캡쳐하기

ERROR: Could not start graph'

를 얻을 수 있지만, 내가 추가 할 때 실패 세 번째.

이 예기치 않은 벽에 이르렀을 때 프로젝트가 거의 끝났다고 생각했습니다.

이 문제에 대한 의견이 있으십니까?

윈도우 7 (64)

비주얼 스튜디오 2011

나는 동기화 된 방식으로 3 카메라의 프레임을 얻을 필요가있다. 이 작업을 수행하는 방법에 대한 제안은 열려 있습니다. DirectShow 나 MediaFoundation을 피할 수있는 다른 프레임 워크가 있습니까? 누구든지 여러 카메라를 열어 스트림에서 프레임을 꺼낼 수있는 코드가 있습니까?

+0

다른 USB 허브의 포트에 카메라를 연결해 볼 수 있습니까? –

답변

3

카메라가 DirectShow를 통해 연결되어있을 가능성이 있습니다 (최소한 Windows에서는). Microsoft에서 카메라와 직접 대화하기 위해 제공 한 저급 API에 대해서는 알지 못합니다.

일반 웹캠 뷰어를 사용하여 3 대의 카메라를 동시에 실행할 수 있습니까?

DirectShow 또는 USB 대역폭에 제한이있을 수 있습니다 - 다른 포트에 연결해보십시오.

그럼에도 다이렉트 쇼를 사용하여 카메라를 정확하게 동기화 할 수는 없지만 타이밍은 최대 프레임 간격 (1/10 초 ~)이 될 것입니다.

1

일반적인 문제는 USB 대역폭이 동시에 실행되는 두 대의 카메라에 대해 충분하지 않다는 것입니다. 두 카메라는 모두 독립적으로 작동하지만 한번 시도하면 불량합니다. 또 다른 덜 빈번한 이유는 카메라 드라이버입니다. 아마도 저해상도 모드에서 시도해 볼 수 있습니다.이 시도가 성공하면 대역폭이 부족한 버전이 가장 가능성이 높습니다.

때로는 카메라를 다른 호스트/컨트롤러 (동일한 호스트의 포트가 아닌)에 연결하여 작업 할 수 있습니다. API 자체는 한 번에 하나의 카메라 만 사용하도록 제한하지 않습니다.

+0

필자는 Microsoft Lifecam 카메라가 USB 허브에서 사용 가능한 모든 대역폭을 요구하는 것을 확실히 보았습니다. 성공하려면 컴퓨터에 여분의 USB 컨트롤러 카드를 추가해야 할 수도 있습니다. – SteveS

관련 문제