|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.|
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.
Note: The hardcopy published version contains an editorial mistake (a sentence out of place), which is corrected in this electronic version. The electronic version in the IEEE library has also been corrected.