OpenCV抓取图像会跳过当前(或下一个)帧

时间:2017-02-10 14:32:09

标签: opencv video-capture

我最近意识到我的所有输出视频都是原始视频的两倍,所以我让程序打印出当前帧并注意到它每次增加2(2,4,6) ,8 ...)。当我删除了" cap>> currentImage;"它打印1,2,3,4,......

我只是不明白为什么会这样。我打印相框的方式有误吗?任何帮助将不胜感激。

int main (int argc, char *argv[]) {

    /// CHANGE INPUT FILE HERE
    Mat currentImage;
    VideoCapture cap("testcut.avi");//"herman.avi"

    if (!cap.isOpened()) {
            cout << "Failed to open the input video" << endl;
            exit(5);}

    for(;;){
        cap>>currentImage;
        if (!cap.grab())
        {
            cout << "\n End of video, looping" << endl;
            cap.set(CV_CAP_PROP_POS_AVI_RATIO, 0);
        }
    waitKey(80);
    cout<<"frame number=         "<<cap.get(CV_CAP_PROP_POS_FRAMES)<<endl;

    }
    return 0;
}

0 个答案:

没有答案