Я не могу понять, как Matlab вычисляет матрицу скорости видеокадра с помощью Optical Flow, используя только текущий кадр. Скорость не будет зависеть от положения разных пикселей. меняющиеся во времени, что будет включать в себя анализ двух и более кадров за раз?
http://www.mathworks.com/help/vision/ref/vision.opticalflow-class.html
% Set up for stream
nFrames = 0;
while (nFrames<100) % Process for the first 100 frames.
% Acquire single frame from imaging device.
rgbData = step(vidDevice);
% Compute the optical flow for that particular frame.
optFlow = step(optical,rgb2gray(rgbData)); %***HERE IS THE DOUBT! iT JUST USES ONE FRAME!!!***
% Downsample optical flow field.
optFlow_DS = optFlow(r, c);
H = imag(optFlow_DS)*50;
V = real(optFlow_DS)*50;
% Draw lines on top of image
lines = [Y(:)'; X(:)'; Y(:)'+V(:)'; X(:)'+H(:)'];
rgb_Out = step(shapes, rgbData, lines');
% Send image data to video player
% Display original video.
step(hVideoIn, rgbData);
% Display video along with motion vectors.
step(hVideoOut, rgb_Out);
% Increment frame count
nFrames = nFrames + 1;
end
step
. Но просто взглянув на код, похоже, что он получает следующий кадр? потому что для полученияrgbdata
код используетstep
, а в следующей строке он снова используетstep
, поэтому я предполагаю, что эта строка захватывает следующий кадр и вместе вычисляет оптический поток - person Ander Biguri   schedule 05.05.2016