File Exchange

image thumbnail


version (174 KB) by Giampiero Campa
Optical flow using the Proesmans method


Updated 01 Sep 2016

View License

Optical flow calculation using the gradient-based method devised by Marc Proesmans.
Look at the beginning of the cpp file for instructions on how to compile and call the proesmans function from MATLAB.

The algorithm is described and used in a couple of journal papers, look in the cpp file to find out more.

Incidentally, this also works as a good example on how to call c and cpp files from MATLAB.

Comments and Ratings (3)

Thank you Sebastien! I'm going to try to include the code that you provided, but it might be a while before i get to do it.
I also definitely encourage anyone that uses this file to include this code and try it out!
Thanks again.

Very fast method, I noticed few memory leaks. You should add the following free_pic and free_float_space:

@@ -693,6 +693,9 @@ struct twin_flows calculate_flow(picture P1, picture P2,
double_flow(halff.reverse, prev.reverse);
+ free_pic(half1);
+ free_pic(half2);

for (i = 1; i <= max_i; i++) {
@@ -720,6 +723,9 @@ struct twin_flows calculate_flow(picture P1, picture P2,
+ free_float_space(Et1);
+ free_float_space(Et2);

} // twin_flows

Avi Nehemiah

Thanks for the great submission, enjoyed trying the gradient based approach.

Some other optical flow methods and examples can be found at this link: ""


Updated license

Added copyright and fixed small typos

MATLAB Release Compatibility
Created with R14SP1
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Learn About Live Editor