CS 342: Computational Photography

INSTRUCTOR: Hao Jiang (Office hours: Thursdays 3:00-4:00pm, Campanella way 554)
SEMESTER: Fall 2010
LOCATION: Futon Hall 453
TIME: T TH 1:30--2:45 PM

Course Overview:

How can we merge multiple pictures to generate a wide-angle view panorama? How can we remove a specific object and fill the hole in an image? How can we generate a 3D walk-through from a single image? Computational photography converges photography, computer vision and computer graphics. It uses computational methods to overcome limitations of traditional photography and video capturing. In this course, we study how to use photos and videos to generate compelling computer imagery. Several popular image-based algorithms will be presented, with an emphasis on using these techniques in real applications. In the programming assignments, students will have the opportunity to acquire their own images and develop the image analysis and synthesis tools to render the scenes.

Topics to be Covered:

Calendar (Approximate)


Computational photography is a relatively new discipline, there is no single complete textbook on the subject yet. We will assign papers and some book chapters as reading materials during the course.

The following books can be used as general reference books:

Evaluation Method

Course projects: 60%; Final Project: 30%; Class participation, paper presentation and quiz: 10%.

Students are encouraged to form pairs in doing the projects and final project. However, for the course projects, every student needs to submit a report. The report should be in the format of HTML with the source code and all the images. The HTML should be as simple as possible and just enough to present the results. You should generate as many images as possible to show how your method works.

There is a 4-day grace period for the course project submission. After that there will be a 20% mark deduction every late day. Final project has to be submitted before the deadline; late ones are not accepted.

Programming Languages

The primary programming language we will use is Matlab. Even though C, C++, Java can also be used, they often yield much longer programs, which are harder to debug than the Matlab counterparts. Matlab may be new to many students. Fortunately, Matlab is easy to learn and easy to use.