我寫這段代碼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