OpenCV 2.4.3和videoInput成Mat

时间:2012-11-07 06:16:15

标签: opencv vs2010-express

我正在尝试使用videoInput库,OpenCV 2.4.3和VS2010 Express从两个或更多MSFT LifeCam HD-3000捕获视频到Mat类型。

我按照Most efficient way to capture and send images from a webcam in a network上的示例进行操作,效果很好。

现在我想用c ++ Mat类型替换IplImage类型。我尝试按照opencv create mat from camera data

上的示例进行操作

这给了我以下内容:

    VI = new videoInput;
    int CurrentCam = 0;
    VI->setupDevice(CurrentCam,WIDTH,HEIGHT);
    int width = VI->getWidth(CurrentCam);
    int height = VI->getHeight(CurrentCam);
    unsigned char* yourBuffer = new unsigned char[VI->getSize(CurrentCam)];
    cvNamedWindow("test",1);
    while(1)
    {
       VI->getPixels(CurrentCam, yourBuffer, false, true);
       cv::Mat image(width, height, CV_8UC3, yourBuffer, Mat::AUTO_STEP);
       imshow("test", image); 
       if(cvWaitKey(15)==27) break;
    }

输出是一个带衬里的图像(即,看起来第一行是正确的,但第二行看似关闭,第三行正确,第四行等)。这表明步骤部分是错误的,或者IplImage类型和我没有得到的Mat类型之间存在一些差异。我试过看/改变所有参数,但我找不到任何东西。

希望,答案可以帮助那些面临将视频输入图像从视频输入库加载到Mat类型时看起来相当普遍的问题。

提前致谢!

0 个答案:

没有答案