Here’s an interesting paper that came out of Stanford in 2005 about plenoptic lenses and light field photography. The techniques in the paper describe how using micro-lenses coupled with a standard lens, the full 4D light field can be captured on a digital image sensor (as opposed to the standard 2D light field of using a standard lens alone). With the full 4D field, ray-tracing techniques can be applied to map the incoming light rays and manipulate the image is ways that are usually only possible at the time the photo is taken.
For example, here’s what the raw image looks like with the micro-lens:
If you zoom in, you can see the tiny micro-images:
Using the micro-images, one can calculate the ray vectors for the incoming light rays. This allows software to change the depth-of-field or the focal point of the image. The 2 pictures below show the processed image with different planes in focus:
This is pretty powerful stuff, especially when coupled with the GPU and CUDA. Adobe did a cool demo at GTC 2010 during the keynote where they do the image manipulation in real-time using the GPU… worth watching if you’re interested.