Я написал этот код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();
}
и когда я читаю видео (не с камеры, но видео с моего жесткого диска) Frame1, frame2 одинаковы !!!
Я не знаю, почему метод «читать» возвращает тот же кадр для frame2? поэтому вычитаемое изображение всегда является пустой картиной !!!
Должен ли я делать что-то особенное для одновременного чтения последовательных кадров? , например, каждый раз, когда я хочу прочитать другой кадр использовать эту линию, чтобы добраться до этого кадра:
input_video.set(CV_CAP_PROP_POS_FRAMES,current_frame+1);
если да, то есть еще один способ не делать этого?!
Благодаря
http://stackoverflow.com/q/11469281/2065121 –
Да, я прочитал, что, но ответы не работали меня ! Я имею в виду, что в этом коде результат всегда равен нулю (даже для ключевых кадров !!!) кажется, что frame1, frame2 всегда один и тот же ... – PsP