OpenCV+VideoInput.lib高清摄像机

OpenCV + VideoInput.lib HD camera

本文关键字:摄像机 高清 lib OpenCV+VideoInput      更新时间:2023-10-16

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

#include <stdafx.h>
#include "videoInput.h"
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include "opencv2opencv.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未定义)。也许我把videoinput.lib安装错了。我确信OpenCV运行良好,并且我使用最新版本(2.4.6)。

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

所以我想,再次编译它对你原来的问题没有帮助。