Любое изображение (например, кадр) - это всего лишь несколько байтов (и в большинстве форматов это теперь они все равно представлены в своей структуре).По сути, все, что вам нужно, это найти КАК получить это представление из объектов вашей инфраструктуры.
std::vector<std::vector<unsigned char>>
- ваш друг, если вы храните свои изображения в сжатом формате (например, JPEG).
std::vector<std::vector<vec3b>>
ваш друг, если вы храните свои изображения в несжатом формате (RGB, YUV, HSV, HSL и т. Д.).
Здесь я предлагаю вам сохранить одно изображение в одном элементевектор более высокого уровня.Поскольку вы занимаетесь обработкой изображений и видео, я полагаю, что вы уже знаете, как работать с векторами = 3
. Будьте осторожны, так как этот метод занимает много памяти из-за сохранения в памяти полностью декодированных изображений.Если вы хотите ограничить максимальный объем используемой памяти, используйте шаблон кругового буфера (свободный с точки зрения скорости и памяти, эффективная абстракция поверх std :: vector может быть записана примерно за 15 минут).
PS Кроме того, когда вы задаете вопрос о SO, постарайтесь разместить как можно больше информации - часть кода, используемая среда, предпринятые (и неудачные) подходы для решения проблемы.Это значительно облегчает правильный ответ.