Optical Flow Renderings


Optical flow renderings is my final project in 6.866, Machine Vision. I implemented in Java an algorithm for calculating optical flow data designed by Professor B.K. Horn. Optical flow is a measure of the apparent flow of brightness in a sequence of images. A flow vector is calculated at points between pixels and between frames of a movie clip.

I then used this data to create artistic renderings of the movie. I had hoped that the renderings I designed would be clearer, but it did not turn out that optical flow leads to very visually coherent results. They are still interesting to look at though, and provide a clear understanding of the results of the optical flow algorithm.

The algorithm is iterative, very slow, and takes up lots of memory. Therefore, the clips I processed were necessarily small and short.

Rendering styles:


Qume letters Rotating globe Face morph Rotating pillars
Needle diagram Needle diagram Needle diagram Needle diagram
Heat rendering Heat rendering Heat rendering Heat rendering
Flicker rendering Flicker rendering Flicker rendering Flicker rendering


Note: most clips are MPEG's, the heat renderings are Quicktime since MPEG couldn't handle the colors correctly.