Я пытаюсь поместить кадры видео в деку. Этот код не работает. Поскольку задняя и передняя часть очереди совпадают с текущим кадром.
deque<Mat> frameSeq;
int main() {
Mat frame;
VideoCapture video("path to video");
int key = 0;
while (key != 'q') {
video >> frame;
frameSeq.push_back(frame);
imshow("front", frameSeq.front());
imshow("back", frameSeq.back());
key = cvWaitKey(1);
}
return 0;
}
Но когда я изменяю размер кадра:
deque<Mat> frameSeq;
int main() {
Mat frame;
VideoCapture video("path to video");
int key = 0;
while (key != 'q') {
video >> frame;
cv::resize(frame, frame, cv::Size(), 1.0 / 2, 1.0 / 2);
frameSeq.push_back(frame);
imshow("front", frameSeq.front());
imshow("back", frameSeq.back());
key = cvWaitKey(1);
}
return 0;
}
Это работает хорошо. Теперь frameSeq.back()
- текущий кадр, а frameSeq.front()
- начальный кадр.
Как заставить очередь работать без изменения размера кадра?