Images can be digitally trans coded in to a number of different data representations. See this homework for some Fourier transform fun. Other domain example would be rgb space, where each pixel is represented by a different color intensity, HSV where each pixel is represented by a hue, saturation and value point. And then there is the gradient domain. This is the land where this project goes.
gradient noun:
change in the value of a quantity with change in a given variable
and especially per unit distance in a specified direction
In the image domain, a gradient is just the change in pixel value from one pixel to the next. If you repeat this over and over again, you can collect all of the pixel "changes" of a given image. For any pixel, it will have four gradients: one from its right neighbor, one from its left neighbor, and one each from its top and bottom neighbors. This can be thought of as the "derivative" of the image, or the rate of change. This information represents the rate of change from one pixel to the next. Once the set of gradients are defined for an images, the image can be reconstructed using the reverse of the process.
This is where the fun starts. Because changes to the gradient domain are so hard to visualize, and one small change to a gradient can affect the entire image, the modifications of an image in the gradient domain are profound and fascinating. The first part of the this project is just a training example, more for myself to get the hang of encoding and decoding the gradient image. The second part goes in to Poisson and Mixed blending, where two images can me blended together with rather impressive results. And the third section deals with NPR, or NonPhotorealistic Rendering, a visually impressive way to modify images.
I hope you enjoy the show...
For further reading:
The Original Project Description.
An intense paper that covers this concept
Gradient Shop  Actuall Application of this process.

