0

Creative Sync HD を使用していますが、OpenCV は 640x480 を超える解像度をサポートしていません。解決策を見つけました - videoinput.lib ですが、使い方がわかりません。VC 2008用にコンパイルされたライブラリをダウンロードしただけですが、2012で作業しています(おそらくそれが問題です)。.hわかりましたので、プロジェクトを入れて.lib、プログラムファイルのVC11 libフォルダーに入れました。リンカーに移動し、追加の依存関係に lib を追加します。今、コードを書こうとしましたが、ビデオ入力のドキュメントが見つかりません。また、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 lib は既に Opencv の一部です (これは Windows のデフォルトの Capture 実装です)。

だから、もう一度コンパイルしても元の問題は解決しないと思います。

于 2013-09-01T09:41:21.537 に答える