Summary: A short introduction to optical flow, with a slant towards how it pertains to the projective flow image registration algorithm we used.

Much of the image registration algorithm we chose to use centers on the idea of projective flow between images. Here we will look at the somewhat simpler concept of optical flow, which has been used in computer vision and other applications for decades.

Let's say you only have a one dimensional image, A(x), where A is a function of pixel intensity for each possible location x. You could then translate all the pixels in that image by a value Δx to generate the image B(x). Another way to view this is to think of both images as part of one function, but with an additional parameter t, for time. This extension comes naturally because a difference from the image captured in A to that in B implies that time has elapsed between capturing each of them as well. This gives us the following equations for E(x,t).

Extending this into two dimensions is not too hard to imagine, as we would simply have an additional parameter, y. From this information, we can calculate derivatives at each point to determine the optical flow between the two images. One way to view these derivatives is to plot a vector field using the x and y derivatives. Vector fields give a decent picture of the motion from one image to the next, an example of which is included below.

Sample Optical Flow Field |
---|

With this in mind, we can now take a look at how the image registration algorithm we used builds upon the concept introduced here.