1

Matlabを使用してオブジェクトの速度を確認しようとしているので、このコードを思いつきました

reader = vision.VideoFileReader ('C:\folder1\objectsandflow.avi');
viewer = vision.DeployableVideoPlayer;
optical = vision.OpticalFlow;
optical.OutputValue = 'Horizontal and vertical components in complex form';
videoPlayer = vision.VideoPlayer('Name','Motion Vector');

while isDone (reader)
I = step(reader);
of = step (optical, rgb2gray(I));
y = of .* conj(of);
step(viewThresh,y>mean(y(:)));
step(videoPlayer)
end
release(videoPlayer);
release(reader);

問題は、フローの値 (いくつかのオブジェクトの速度を探していて、Matlab を使用できますか?) もビデオも表示できないことです。

同時に、このコードができない場合にオブジェクトのすべての速度を計算するためにこれが機能するかどうかはわかりません.Matlabで複数の速度を計算するにはどうすればよいですか?

4

1 に答える 1

0

問題は次の 2 行にあります。

step(viewThresh,y>mean(y(:)));
step(videoPlayer)

それらをこれらに置き換えてみてください:

viewThresh = y;
viewThresh(y < mean(y(:))) = 0;
step(videoPlayer, viewThresh);

オブジェクトを使用していないためstep、しきい値処理のメソッドは必要ありません。yオブジェクトを呼び出すときはstepvideoPlayer表示したいビデオ フレームを渡す必要があります。

于 2014-09-08T14:06:16.107 に答える