vision.OpticalFlow 未显示视频或流量值

问题描述 投票:0回答: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中计算多个速度?

matlab video computer-vision matlab-cvst opticalflow
1个回答
0
投票

你的问题出在这两行:

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

尝试用这些替换它们:

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

您不需要

step
方法来进行阈值处理
y
,因为您没有使用任何对象。当你在
step
对象上调用
videoPlayer
时,你必须传入你想要显示的视频帧。

© www.soinside.com 2019 - 2024. All rights reserved.