что делает эта функция videooptflowlines() matlab?

для чего предназначена эта функция videooptflowlines(); также содержит ли объект hof информацию о предыдущем кадре для расчета оптического потока?

hvfr = vision.VideoFileReader('viptraffic.avi', ...
                              'ImageColorSpace', 'Intensity', ...
                              'VideoOutputDataType', 'uint8');
hidtc = vision.ImageDataTypeConverter; 
hof = vision.OpticalFlow('ReferenceFrameDelay', 1);
hof.OutputValue = 'Horizontal and vertical components in complex form';
hsi = vision.ShapeInserter('Shape','Lines','BorderColor','Custom', 'CustomBorderColor',      255);
hvp = vision.VideoPlayer('Name', 'Motion Vector');
while ~isDone(hvfr)
    frame = step(hvfr);
    im = step(hidtc, frame); % convert the image to 'single' precision
    of = step(hof, im);      % compute optical flow for the video
    lines = videooptflowlines(of, 20); % generate coordinate points 
    if ~isempty(lines)
      out =  step(hsi, im, lines); % draw lines to indicate flow
      step(hvp, out);           % view in video player
    end
end
release(hvp);
release(hvfr);

person Haris_tech    schedule 10.12.2013    source источник


Ответы (2)


Функция videooptflowlines — это вспомогательная функция, используемая в демонстрациях (visiondemos) в набор инструментов системы компьютерного зрения. Вы можете увидеть код этой функции, набрав edit videooptflowlines в командном окне Matlab. В комментарии к коду указано, что, как следует из названия, функция используется в примере справки для vision.OpticalFlow.

По сути, функция выполняет основные математические операции для создания векторных линий, указывающих направление оптического потока. В коде есть несколько параметров, которые, вероятно, будут зависеть от разрешения используемого изображения. Если вы создаете свой собственный код, который использует эту функцию, вам, вероятно, следует создать ее копию и отредактировать новую версию в соответствии с вашими потребностями.

person horchler    schedule 10.12.2013

Ответ на ваш второй вопрос "да". Объект vision.OpticalFlow действительно содержит информацию о предыдущем кадре.

person Dima    schedule 10.12.2013