Создание видео Time-Lapse с использованием постпроцессированных данных

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

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

Следите за последовательностью в течение дня. (21 секунд)

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

Перед получением изображений с помощью 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 Time-Lapse

Чтобы воспроизвести просроченную последовательность AVI, щелкните правой кнопкой мыши имя файла в браузере текущей папки MATLAB ® и выберите в контекстном меню команду Открыть вне MATLAB .

Очистка

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

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