如何从MATLAB的estimateFlow提取实际速度值()?

5视图(30天)
你好
我正在编写一些代码来确定一个物体的速度朝着摄像机前。我想知道如果任何人有经验确定你的真实世界的速度用相机捕捉。我有像素之间的信息转换和现实世界的长度,以及帧之间的时间。不幸的是,我不知道光流值在这个过程中所扮演的角色,以及他们如何被转换成一个真实世界的速度。这是我的主要问题。
这是我工作的代码
%的输入:视频文件
videoReader = vision.VideoFileReader (“VideoInCurrentDirectory.mp4”,“ImageColorSpace”,“强度”);
= opticalFlowHS;%使用角Schunk方法创建光学流对象。
Vx = 0 (250400100);% 100的帧数
i = 1;
(~结束(videoReader))
vidFrame =步骤(videoReader);
流场= estimateFlow (vidFrame);
情节(流场、“DecimationFactor”[1],“ScaleFactor”1);
flowFieldSimp。Vx = flowField.Vx;% flowFieldSimp是自己的对象的对象存储流场信息
Vx (:,:, i) = flowFieldSimp.Vx;
我=我+ 1;
结束
%输出:一个3 d矩阵x方向上的速度值估计流
%的功能。
然后我可以看到x方向的光流速度为每一帧Vx矩阵。但我不知道如何处理这些值。
如果你能提供帮助或指向任何资源处理光流速度和现实世界,这将是一个很大的帮助。我看着其他答案关于光学流从MATLAB的单位,但答案不是很清楚。
谢谢,
亚历克斯

答案(1)

他Purwar
他Purwar 2021年7月28日
编辑:他Purwar 2021年7月28日
嗨,亚历克斯,
正如你提到的,估计相邻帧之间的光流是用来测量物体的速度。计算直观地运动/改变物体的位置与前一帧的引用。
请看看下面的示例和文档进行进一步的见解:
如果相机位置和相机intrinsic可用,可以用来改进总体估计车辆的位置和速度。
请参考下面的例子:
希望它帮助! !
谢谢

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!