【问题标题】:vision.OpticalFlow is not showing the video nor the value of the flowvision.OpticalFlow 没有显示视频,也没有显示流的值
【发布时间】:2014-10-30 07:42:20
【问题描述】:

我正在尝试使用 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 matlab-cvst opticalflow vision


    【解决方案1】:

    你的问题在于这两行:

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

    尝试用这些替换它们:

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

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

    【讨论】:

    • 我想知道视频中四个物体的速度,所以(根据我发现)我需要使用步进或光流但我仍然不知道如何查看这些速度在视频中,我可以对我的对象进行扇区化并计数,但我不知道该怎么做才能看到它们的速度帮助帮助帮助
    • 您可以使用quiver 来可视化流向量。
    猜你喜欢
    • 2014-08-11
    • 2023-03-05
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2017-10-23
    • 2018-12-22
    相关资源
    最近更新 更多