0

ビデオをループで再生しようとしています。ビデオの最後に達したかどうかを確認して、インスタンスを復元できるようにしたい。ループさせるにはどうすればよいですか?

 VideoStream::VideoStream(Filters* f, char* fileNam):
            filter(f),
            fileName(fileNam){
    TestON = true;
    cap = new VideoCapture(fileNam);
};


void VideoStream::readFrame(){
    if(!cap->isOpened())  // check if we succeeded
    cerr<<"cannot open video file";
    if(cap->get(CV_CAP_PROP_POS_AVI_RATIO==1)){
          cap = new VideoCapture(fileName);
    }
    Mat image;
    cap->read(image);
    if(!image.empty())
        imshow("haha", image);
    waitKey(1);
    image.release();
};
4

2 に答える 2

2

どうやら..ビデオの最後に空のフレームがあり、次の方法でそのフレームを確認できます。

if(image.empty()){
    cap = new VideoCapture(fileName);
}else{
    image.copyTo(*_stream);
}
于 2013-07-18T14:21:13.490 に答える