170 похожих чатов

#Opencv #thread #queue Приветствую всех. Подскажите, есть ли в плюсах очередь

фиксированной длинны? Задача следующая - имеется отдельный поток, он получает с камеры фреймы и запихивает их в очередь:
queue<Mat> frame;
void reader(){
VideoCapture video("rtsp://admin:qwqwqwe1@cam1/0");
Mat tmp;
if (!video.isOpened()){
exit(1);
}
while (video.grab()) {
video >> tmp;
frame.push(tmp);
this_thread::sleep_for(30ms);
}
exit(127);
}
запускается при старте приложения.
По определённым событиям мне надо начать выгребать из очереди кадры и обрабатывать. Обработка тяжёлая и не всегда к появлению следующего кадра я успею. Необходимо реализовать очередь, где может хранится определённое количество элементов. например 60. если пришол новый кадр, а очередь заполнена, самый старый удаляется, а новый в конец очереди. есть штатные классы для подобной реализации?

3 ответов

12 просмотров

М.б. boost::circular_buffer

Реализовать кольцевой буфер на базе std::array и хранить индексы чтения записи, записывая увеличиваешь индекс записи по модулю 60, читая увеличиваешь индекс чтения по модулю 60, если они равны, буфер пуст или ты опаздал на 60 кадров

Просто как делаешь push, проверь, если длина больше нужной, сделай стирание ненужных элементов.

Похожие вопросы

Обсуждают сегодня

лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
Яндекс маршрутизатор кто-нибудь использовал с своих проектах, чтоб через него маршруты составить/посчитать? Насколько простой/муторный сервис?
Dreamer_0x01 VeseloV
7
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
В связи с "политическим дембелем" ms office кто нибудь пробовал работать с чем то импортозамещенным? Например, Р7. Т. е. задача открыть "импортозамещенный" шаблон, что то в н...
Alex
5
Карта сайта