2

我有一个可以检测到的单个多头(立体声)usb 摄像头,并且可以使用 GraphEdit 中的“视频捕获源”过滤器流式传输立体声视频在此处输入图像描述

我正在尝试使用 OpenCV2.4.8(在具有 VS2010、Win7 X64 的 PC 上)访问两个通道以进行进一步的立体图像处理。但是,我只能检测/流式传输相机的单个头(通道),而不是它的两个立体声头。我的代码是根据VideoCapture::grab/VideoCapture::retrieve的相关文档说明设置的,如下所示:

#include "opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;
    Mat Lframe,Rframe;
    namedWindow("Lframe",CV_WINDOW_AUTOSIZE);namedWindow("Rframe",CV_WINDOW_AUTOSIZE);
    while(char(waitKey(1)) != 'q') {
        if(cap.grab())
            cap.retrieve(Lframe,0); cap.retrieve(Rframe,1);// get a new frame
        imshow("Lframe",Lframe);imshow("Rframe",Rframe);
        if(waitKey(30) >= 0) break;
    }
    return 0;
}

问题是无论传递哪个通道索引,渲染的通道(Lframe,Rframe)都是相同的。因此,只能访问某些头部并且我无法获得立体声流。

有没有办法直接在 OpenCV 中使用“视频捕获源”过滤器?

等待您的帮助并提前感谢您,

4

0 回答 0