1

AVI ビデオファイルと Web カメラを用意します。cvQueryFrameどちらの場合も null を返します。コードが適用されます (カムのみ):

#include "highgui.h"
#include <iostream>

using namespace std;

int main( int argc, char** argv )
{   
    cvNamedWindow( "KillCam", CV_WINDOW_AUTOSIZE );
    cvWaitKey(0);
    CvCapture* capture = cvCreateCameraCapture(-1);
    assert(capture != NULL);
    IplImage* frame;

    while(1){
        frame = cvQueryFrame( capture ); 
        if( !frame ) break;
        cvShowImage( "KillCam", frame );
        char c = cvWaitKey(33);
        if( c == 30 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "KillCam" );
}
4

2 に答える 2

3

openCV コードに足を踏み入れると、fmpeg dll が実行時に現在の作業ディレクトリに存在することを確認する必要があることがわかりました。

opencv_ffmpeg200d.dll

この dll が見つからない場合、OpenCV は警告を発しません。代わりに、capture create 呼び出しは NULL を返します。

h番目

于 2010-02-11T11:42:43.667 に答える
0

ビデオフォーマットを確認してください。OpenCV は、サポートするコーデックにうるさい場合があります。たとえば、Xvid では機能しません。サポートされているコーデックのリストは、OpenCV wikiにあります。

于 2010-01-10T16:55:06.933 に答える