我写这段代码OPENCV无法读取2个视频帧同步
while (true)
{
cv::Mat frame1,frame2,dst,temp;
if (!input_video.read(frame1))
{
fprintf(stderr, "Video has Finished .\n");
getchar();
return -1;
}
if (!input_video.read(frame2))
{
fprintf(stderr, "Video has Finished .\n");
getchar();
return -1;
}
cv::cvtColor(frame1,frame1,CV_RGB2GRAY) ;
cv::cvtColor(frame2,frame2,CV_RGB2GRAY) ;
cv::subtract(frame2,frame1,dst);
cv::imshow("F1",frame1);
cv::imshow("F2",frame2);
cv::imshow("dst",dst);
cv::waitKey();
}
,当我读的视频(而不是从相机但是从我的硬盘视频)帧1,帧2是相同的!
我不知道为什么“读取”方法返回frame2相同的帧?所以减去的图像总是一个空的图片!
我应该做一些特别的事情,以便同时读取连续帧吗? 比如我要读另一架使用此行去该帧每次:
input_video.set(CV_CAP_PROP_POS_FRAMES,current_frame+1);
如果是这样,有没有这样做另一种方式?!
感谢
http://stackoverflow.com/q/11469281/2065121 –
是的,我读过,但答案没有工作了我 !我的意思是在这段代码中,结果总是为零(即使是关键帧!!!),看起来frame1,frame2总是一样的... – PsP