How to convert optical flow velocity to meters per second?

8 views (last 30 days)
Hi,
I have a calibrated camera and can convert positions from pixels to meters using the transformPointsInverse function. I am also estimating velocities of moving objects using the optical flow method provided in Computer Vision System Toolbox. However, I would like to convert the velocities from pixels/frame to meters/sec. How can I do this?
Obviously I tried
diff(position)/fps
but this magnifies noise in the signal so I don't get realistic velocities.

Answers (1)

Dima Lisin
Dima Lisin on 24 Feb 2015
Hi Erik,
You should multiply by fps, instead of dividing. The time between two frames in seconds is 1/fps.
Also, are you reading the video from a file, or are you processing live video? In the latter case, you would not really know your frame rate, because it would depend on how much processing you are doing. The best thing to do would be to get the timestamp for the frames that you are comparing.
  3 Comments
Dima Lisin
Dima Lisin on 25 Feb 2015
Are you sure that you are computing the distances in meters correctly? How exactly are you calibrating your camera?
ANTONIO FRANCESCHIELLI
ANTONIO FRANCESCHIELLI on 4 Oct 2023
Anche io ho un problema del genere. Vorrei capire come trasformare la mia velocità (Vx e Vy) del flusso ottico da pixel per frame a metro al secondo.
I have a similar problem too. I would like to understand how to transform my velocity (Vx and Vy) of optical flow from pixels per frame to meters per second

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!