How to obtain velocity and magnitude vectors of the optical flow field? I am using Lucas-Kande method of optical flow.
15 views (last 30 days)
Show older comments
I am working on the following code.
n=0;
folder = fileparts(which('viptraffic.avi'));
movieFullFileName = fullfile(folder, 'viptraffic.avi');
vidReader = VideoReader(movieFullFileName);
opticFlow = opticalFlowLK('NoiseThreshold',0.0039);
while hasFrame(vidReader)
frameRGB = readFrame(vidReader);
frameGray = rgb2gray(frameRGB);
flow = estimateFlow(opticFlow,frameGray);
H=imag(flow)
V=real(flow)
frameWithFlow = getframe(gca);
imshow(frameRGB);
imshow(frameWithFlow.cdata)
hold on
plot(flow,'DecimationFactor',[5 5], 'ScaleFactor',10)
hold off
n=n+1;
end
Is there a way to get the optical flow estimates of velocity and magnitude for every optical flow field obtained in every image?
1 Comment
Nachiket Patki
on 5 May 2018
hey @ Daksh Agarwal I also tried this code can you please tell me one thing whether your output video runs very slowly? Because I am facing that problem. How can I make it faster?
Answers (1)
Vishnu Sreekumar
on 1 Mar 2017
If you're still looking for an answer:
x_vel = flow.Vx;
y_vel = flow.Vy;
magnitudes = flow.Magnitude;
orientations = flow.Orientation;
Note that if the image is n x m (n rows, m columns), X direction is top to bottom and Y direction is left to right when using imshow and
plot(flow,'DecimationFactor',[5 5], 'ScaleFactor',10)
is the same as
quiver(1:n,1:m,x_vel,y_vel);
3 Comments
Cheuk Wing Edmond Lam
on 24 Jun 2018
do you happen to know the units of the values reported by flow.Magnitude?
Vishnu Sreekumar
on 18 Jun 2019
@Cheuk: No but I imagine it is pixels traveled per timeframe.
So if your magnitude is 0.4, and the distance between pixels is 1 cm (depending on your specific application), and the timestep between two frames is 0.1 s, then the speed is 0.4 x 1 cm / 0.1 s = 4 cm/s.
See Also
Categories
Find more on Tracking and Motion Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!