A weekend hack. On the left is a Frankencamera F2 with a Canon 10-22mm EOS lens and Canon 580EX and Canon 430EX flashes glued to its body. To produce the image shown at right, the 430EX was programmed using our FCam API to strobe repeatedly during a one-second exposure, producing the card trails, and the the more powerful 580EX was programmed to fire once at the end of the exposure (called "2nd-curtain sync"), producing the crisp images of the three cards.

Experimental Platforms for Computational Photography

Marc Levoy
Stanford University
IEEE Computer Graphics and Applications
Vol. 30, No. 5, September/October, 2010, pp. 81-87


Although interest in computational photography has steadily increased among graphics and vision researchers, few of these techniques have found their way into commercial cameras. In this article I offer several possible explanations, including barriers to entry that arise from the current structure of the photography industry, and an incompleteness and lack of robustness in current computational photography techniques. To begin addressing these problems, my laboratory has designed an open architecture for programmable cameras (called Frankencamera), an API (called FCam) with bindings for C++, and two reference implementations: a Nokia N900 smartphone with a modified software stack and a custom camera called the Frankencamera F2. Our short-term goal is to standardize this architecture and distribute our reference platforms to researchers and students worldwide. Our long-term goal is to help create an open-source camera community, leading eventually to commercial cameras that accept plugins and apps. I discuss the steps that might be needed to bootstrap this community, including scaling up the world's educational programs in photographic technology. Finally, I talk about some of future research challenges in computational photography.

The paper

Related material

© Copyright 2010 by Marc Levoy
Last update: August 30, 2010 03:04:39 PM