我最近意识到我的所有输出视频都是原始视频的两倍,所以我让程序打印出当前帧并注意到它每次增加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;
}