0

プログラムを実行すると、次の問題に直面しています。main 関数の 1 行目でプログラムが異常終了しました。のパスはすべて正しく、何も問題はありません。lib-include 追加ライブラリのセットアップはすべて完璧に行われています。ここで何が問題なのですか?

#include <cv.h>
#include <highgui.h>

int main()
{
     //load the video file to the memory
   **  CvCapture *capture =     cvCaptureFromAVI("A.avi"); ** // this instruction crashed the file is there in the folder, that not an issue....

     if( !capture ) return 1;

     //obtain the frames per seconds of that video
     int fps = ( int )cvGetCaptureProperty( capture, CV_CAP_PROP_FPS );

    //create a window with the title "Video"
    cvNamedWindow("Video");

    while(true) {
             //grab and retrieve each frames of the video sequencially 
             IplImage* frame = cvQueryFrame( capture );

             if( !frame ) break;

             //show the retrieved frame in the "Video" window
             cvShowImage( "Video", frame );

             int c; 


             if(fps!=0){  

                     //wait for 1000/fps milliseconds
                     c = cvWaitKey(1000/fps);
            }else{
                     //wait for 40 milliseconds
                      c = cvWaitKey(40);
            } 



          //exit the loop if user press "Esc" key  (ASCII value of "Esc" is 27) 
            if((char)c==27 ) break;
   }

   //destroy the opened window
   cvDestroyWindow("Video");   
   //release memory
   cvReleaseCapture( &capture );

    return 0;

}
4

1 に答える 1

0

VideoCapture健全性チェックとして、OpenCV C++ API の機能が動作するかどうかを見てみましょう。これを試してみましょう:

#include <opencv2/opencv.hpp>
#include <cv.h>
using namespace cv;

VideoCapture capture("A.avi");
Mat matFrame;
capture >> matFrame; //each time you do this, the next video frame goes into the 'matFrame' object        
IplImage* frame=cvCloneImage(&(IplImage)matFrame); //convert Mat to IplImage to hook in with your code

ここでは C と C++ の OpenCV API を混在させていますが、それを実行する手助けをしたかっただけです。

于 2012-12-27T02:57:07.747 に答える