0

我有一个 Creative Sync HD,我看到 OpenCV 不支持高于 640x480 的分辨率。我找到了一个解决方案 - videoinput.lib,但我不知道如何使用它。我只是为 VC 2008 下载了一个已编译的库,但我在 2012 年工作(也许这就是问题所在)。好的,所以我将.h项目.lib放入程序文件中的 VC11 lib 文件夹中。我去链接器并将lib添加到附加依赖项。现在我尝试编写代码,但我找不到任何有关 videoinput 的文档,而且我也不太擅长 OpenCV。有人可以给我一些简单的代码来检查它是否有效吗?我用了:

#include <stdafx.h>
#include "videoInput.h"
#include "opencv/cv.h"
#include "opencv/highgui.h"

#include "opencv2\opencv.hpp"

int main()
{
    videoInput VI;
    int numDevices = VI.listDevices();
    int device1= 0;
    VI.setupDevice(device1);
    int width = VI.getWidth(device1);
    int height = VI.getHeight(device1);
    IplImage* image= cvCreateImage(cvSize(width, height), 8, 3);
    unsigned char* yourBuffer = new unsigned char[VI.getSize(device1)];
    cvNamedWindow("test");
    while(1)
    {
        VI.getPixels(device1, yourBuffer, false, false);
        image-&gt;imageData = (char*)yourBuffer;
        cvConvertImage(image, image, CV_CVTIMG_FLIP);
        cvShowImage("test", image);
        if(cvWaitKey(15)==27) break;
    }

    VI.stopDevice(device1);
    cvDestroyWindow("test");
    cvReleaseImage(&amp;image);

    return 0;
}

但我有很多错误(gt、amp、imagedata undefined)。也许我安装了 videoinput.lib 错误。我确信 OpenCV 运行良好,我使用的是最新版本(2.4.6)。

4

1 回答 1

1

VideoInput 库已经是 Opencv 的一部分(它是 Windows 上的默认 Capture 实现)。

所以我想,再次编译它不会帮助你原来的问题。

于 2013-09-01T09:41:21.537 回答