Skip to main content
2 of 3
code formatting is generally better just for code, removed. Tags
Ray Mairlot
  • 29.4k
  • 12
  • 105
  • 126

Track a pixel between frames using speed (vector) outputs?

With a sequence of frames, I am looking to compute how each pixel moves between two frames (i.e., optical flows). For example, I wish to generate a "pixel movement map" that tells me, for example, pixel '(100, 100)' in frame 1 moves to '(102, 105)' in frame 2.

As this post suggests, I can

enable the desired render layer (ie "vector") and then save the render output as OpenEXR file. That format will save all the desired render layers (in this case, motion information in 4 channels) in a single file...

I now have the OpenEXR images of size '1080x720x3'. The values range from around '-200' to '100'. Given the relatively small motion between two frames in my case, I am sure these numbers are not in pixel unit (also, they are not even integers!).

What exactly are these numbers? How should I process these values to get movement (in both 'x' and 'y' directions; pixel unit) for each pixel?

P.S. -- As I write this question, I realize there will be pixels present in frame 1 but not in frame 2. Not sure how this speed output reflects that?

Sibbs Gambling
  • 739
  • 2
  • 15
  • 32