Создание видео таймлапса Используя постобработанные данные

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

Image Acquisition Toolbox™ дает возможность производить фотографию таймлапса. В этом примере мы будем использовать постобработку, чтобы удалить системы координат из полученной последовательности изображений. Это идеально для ситуаций, где вы не уверены, какие системы координат релевантны во время получения, или где ваша обработка заняла бы слишком много времени происходить во время захвата. Возможное приложение должно было бы удалить системы координат, которые не имеют никакого движения относительно предыдущей системы координат. Первичный недостаток этого метода децимации времени - то, что это требует, чтобы большие объемы памяти сохранили все системы координат. Этот пример получает к памяти, но вы, вероятно, получили бы к файлу AVI, и затем использовали бы VideoReader команда, чтобы постобработать системы координат.

См. последовательность таймлапса один день длиной.

Создайте объект ввода видео

Прежде, чем получить изображения с помощью Image Acquisition Toolbox, создайте объект ввода видео.

% When executing the following code, you may need to
% modify it to match your acquisition hardware.
vid = videoinput('winvideo',1,'RGB24_352x288');

Сконфигурируйте объект ввода видео

Настройка, которую мы будем использовать,

  • Получите 100 систем координат

vid.FramesPerTrigger = 100;
vid
Summary of Video Input Object Using 'Logitech QuickCam Fusion'.

   Acquisition Source(s):  input1 is available.

  Acquisition Parameters:  'input1' is the current selected source.
                           100 frames per trigger using the selected source.
                           'RGB24_352x288' video data to be logged upon START.
                           Grabbing first of every 1 frame(s).
                           Log data to 'memory' on trigger.

      Trigger Parameters:  1 'immediate' trigger(s) on START.

                  Status:  Waiting for START.
                           0 frames acquired since starting.
                           0 frames available for GETDATA.

Получите и получите системы координат

start(vid);
wait(vid);
framesavailable = vid.FramesAvailable;
framesavailable =

   100

frames = getdata(vid,framesavailable);

Постобработайте полученные системы координат

Здесь, просто удалите любую систему координат. Однако вы могли сделать обработку, которая является намного более комплексной.

toberemoved_index = [2:2:framesavailable];
frames(:,:,:,toberemoved_index) = [];
numframes = size(frames,4)
numframes =

    50

Представьте системы координат к файлу AVI

Представьте системы координат к файлу AVI. Для этого создайте VideoWriter объект, вызовите writeVideo функция, чтобы добавить все системы координат в файл AVI, и затем использовать close функция, чтобы высвободить средства, сопоставленные с файлом AVI.

vwObj = VideoWriter('timelapsevideo', 'Uncompressed AVI');
vwObj.FrameRate = 15;
open(vwObj);
writeVideo(vwObj, frames);
close(vwObj);

Воспроизведите таймлапс последовательность AVI

Чтобы воспроизвести таймлапс последовательность AVI, щелкните правой кнопкой по имени файла в Браузере текущей папки MATLAB® и выберите Open Outside MATLAB из контекстного меню.

Очистка

Когда вы закончите с объектом ввода видео, необходимо использовать delete функционируйте, чтобы освободить аппаратные ресурсы, сопоставленные с ним и удалить его из рабочей области с помощью clear функция. Также удалите и очистите объект VideoWriter.

delete(vid);
delete(vwObj);
clear vid vwObj;