В этом примере показано, как создать видео таймлапса путем удаления ненужных систем координат во время постобработки.
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. Для этого создайте |VideoWriter | объект, вызовите |writeVideo | функция, чтобы добавить все системы координат в файл AVI, и затем использовать |close | функция, чтобы высвободить средства, сопоставленные с файлом AVI.
vwObj = VideoWriter('timelapsevideo', 'Uncompressed AVI'); vwObj.FrameRate = 15; open(vwObj); writeVideo(vwObj, frames); close(vwObj);
Чтобы воспроизвести таймлапс последовательность AVI, щелкните правой кнопкой по имени файла в Браузере текущей папки MATLAB® и выберите Open Outside MATLAB из контекстного меню.
Когда вы закончите с объектом ввода видео, необходимо использовать delete
функционируйте, чтобы освободить аппаратные ресурсы, сопоставленные с ним и удалить его из рабочей области с помощью clear
функция. Также удалите и очистите объект VideoWriter.
delete(vid); delete(vwObj); clear vid vwObj;