1

ビデオを再生するためのコードがここにあります。コンパイルするとうまくいきますが、実行すると何もしません。何が問題なのですか?コードですか?または、ビデオの依存関係が正しくインストールされていませんか?

#include <highgui.h>

int main(int argc, char** argv) {
     /* Create a window */
     cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
     /* capture frame from video file */
     CvCapture* capture = cvCreateFileCapture( argv[1]);
     /* Create IplImage to point to each frame */
     IplImage* frame;
     /* Loop until frame ended or ESC is pressed */
     while(1)
     {
        /* grab frame image, and retrieve */
        frame = cvQueryFrame(capture);
        /* exit loop if fram is null / movie end */
        if(!frame) break;
        /* display frame into window */
        cvShowImage("Example2", frame);
        /* if ESC is pressed then exit loop */
        char c = cvWaitKey(33);
        if(c==27) break;
     }

     /* destroy pointer to video */
     cvReleaseCapture(&capture);
     /* delete window */
     cvDestroyWindow("Example2");

     return EXIT_SUCCESS;
}
4

1 に答える 1

0

コマンドラインからファイルの名前を直接指定する代わりに、パラメーターでファイル名を渡して、ビデオが表示されるかどうかを確認し、パラメーターでファイルのフルパスを指定してください。そうでない場合は、OSまたはビデオの依存関係に問題があるかどうかを調べます。

現在、ファイルに適切なパスを指定していないように見えます。

使用しているビデオのフォーマットは何ですか?

また、ビデオファイルがロードされているかどうかを確認してください。

if(!capture)

{

//Just to check if the video gets loaded or not

printf("Video Can't be loaded"); getch();

System.exit(0);

}

お役に立てば幸いです。

于 2012-12-26T09:51:24.410 に答える