Skip to main content
replaced http://blender.stackexchange.com/ with https://blender.stackexchange.com/
Source Link

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 postthis 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?

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?

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?

code formatting is generally better just for code, removed. Tags
Source Link
Ray Mairlot
  • 29.4k
  • 12
  • 105
  • 126

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)'(100, 100)' in frame 1 moves to (102, 105)'(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'1080x720x3'. The values range from around -200'-200' to 100'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'x' and y'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?

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?

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?

Source Link
Sibbs Gambling
  • 739
  • 2
  • 15
  • 32

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?