現在のフレームを使用して、Matlabがオプティカルフローによるビデオフレームの速度マトリックスを計算する方法を理解できません。速度は、時間あたり2フレーム以上の解析を含む時間に変化する異なるピクセル位置の関係ではないでしょうか?ビデオフレーム内のオブジェクトの速度を計算する - オプティカルフロー(Matlab)
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'をもう一度使うので、その行は次のフレームをキャプチャして一緒にオプティカルフローを計算します。 –