Matlab: у меня ограниченная память, есть ли альтернативные решения для чтения данных из видео?

В настоящее время у меня проблема с Matlab в том, что когда я пытаюсь прочитать некоторые данные из видео, я получаю сообщение об ошибке:

??? Недостаточно памяти для 990 кадров.

У меня достаточно памяти для чтения около 100 кадров или около того.

Я говорю об альтернативных решениях в заголовке, так как полагаю, что очевидным ответом будет покупка большего объема памяти. Существуют ли другие способы чтения этих кадров и их обработки? Например, я подумал, что, возможно, я смогу читать кадр за раз с помощью цикла и изменять размер видеокадра, чтобы использовать меньше памяти (или делать это с помощью альтернативной программы)? Видео довольно интенсивно использует память при разрешении 1024x1024. Однако при уменьшении масштаба я беспокоюсь, что потеряю ценные данные из видео.

Любая помощь будет принята с благодарностью!

Заранее спасибо :)

пс. Текущий код:

vid = VideoReader('video.avi');
frames = read(vid);

person Matt Le Fleur    schedule 27.06.2011    source источник


Ответы (1)


Вы можете прочитать определенные кадры, указав индексы вместо чтения всех кадров в память, как указано в документацию.

frames = read(vid); %# Read all
frames = read(vid, index); %# Read only the specified frames

Пример

frames = read(vid, [1 50]); %# Read the first 50 frames
person petrichor    schedule 27.06.2011
comment
Я пробовал это, но в идеале мне нужно иметь возможность обрабатывать все видео сразу. Как вы думаете, это возможно, учитывая мою нынешнюю память? - person Matt Le Fleur; 27.06.2011
comment
Я так не думаю. Кстати, а зачем тебе все видео? - person petrichor; 27.06.2011
comment
Ах хорошо. Ну, «нужно», наверное, неправильное слово, может быть, я просто ленивый! Если мне нужно (нужно правильно использовать здесь!) для обработки всего видео, должен ли я применять его по частям? Когда я пишу это, я в значительной степени отвечаю на свой собственный вопрос, так как я уверен, что вы скажете, перестаньте лениться и сделайте это. Спасибо за это кстати :) - person Matt Le Fleur; 27.06.2011
comment
Да, конечно. Вы должны читать его блоками кадров. И вам может понадобиться прочитать перекрывающиеся кадры, если вам нужно обработать несколько смежных кадров. - person petrichor; 27.06.2011