CSCI 129 Computational Photography

Spring 2011, MWF 11:00 to 11:50, CIT 506.
Instructor: James Hays
HTA: Travis Webb
UTA: David Dufresne

Computational Photography Montage

Course Description

Course Catalog Entry
Computational Photography describes the convergence of computer graphics, computer vision, and the Internet with photography. Its goal is to overcome the limitations of traditional photography using computational techniques to enhance the way we capture, manipulate, and interact with visual media. In this course we will study many interesting, recent image based algorithms and implement them to the degree that is possible. We will cover topics such as The course will consist of six programming projects, two written exams, and a student-chosen final project. Students can earn graduate credit for the course but will need to meet higher requirements on all projects throughout the semester and need the instructor's permission. The graduate version can count towards a graphics specialization.


This course requires programming experience as well as linear algebra, basic calculus, and basic probability. Previous knowledge of computer graphics or computer vision will be helpful. It is strongly recommended that students have taken one of the following courses (or equivalent courses at other institutions): Some of the course topics overlap with these related courses, but none of the assignments will.


Winning projects

All Results

Image alignment with pyramids Paul Sastrasinh, Kefei Lei Proj 1
Gradient domain fusion using Poisson blending Paul Sastrasinh, Andy Loomis Proj 2
Image completion with graph cuts Libin "Geoffrey" Sun, Roger Fong Proj 3
Stereo Pinhole Camera Technical: Paul Sastrasinh
Artistic: Genevieve Patterson and Libin "Geoffrey" Sun
Proj 4
Image Filtering
Camera Phone HDR Proj 5
Camara Phone Automatic Panorama Proj 6
Your choice for final project Public Final Projects
*All Final Projects
*(Internally available only)
It is strongly recommended that all projects be completed in Matlab and all starter code will be provided for Matlab. Students may implement projects through other means but it will generally be more difficult.


Some course projects will make use of the open-source FCam (Frankencamera) platform. Nokia has generously donated a classroom set of linux-powered N900 camera phones.

Students are expected to capture their own photographic data for their projects. There's no need for anything fancy -- any digital camera with manual controls should work. See the professor if this is a problem.


Readings will be assigned in the free, online textbook "Computer Vision: Algorithms and Applications" by Richard Szeliski.


Your final grade will be made up from You have three "late days" for the whole course. That is to say, the first 24 hours after the due date and time counts as 1 day, up to 48 hours is two and 72 for the third late day. This will not be reflected in the initial grade reports for your assignment, but they will be factored in and distributed at the end of the semester so that you get the most points possible.

Graduate credit is available and each project will specifiy the minimum requirements to earn such credit.

Important Links:

Contact Info and Office Hours:

You can contact the professor or TA staff with any of the following: Professor James' office hours will be held in his office (CIT 445). TA office hours will be held in the Brindy Bowl (CIT 271).


Class Date Topic Materials Out Due
W, Jan 26th Introduction to computational photography .ppt
Szeliski chapter 1
F, Jan 28th Matlab Tutorial by Travis Webb Matlab tutorial Optional Project 0
M, Jan 31st Cameras and optics .ppt
Szeliski chapter 2
Project 1 out
W, Feb 2nd Capturing light, man vs machine .ppt
Szeliski chapter 2
F, Feb 4th Sampling and reconstruction .ppt
Szeliski Chapter 2
M, Feb 7th Linear Filters .ppt
Szeliski Chapter 3.2
Project 1 due
W, Feb 9th Project 1 Presentations, Frequency Domain .ppt
Szeliski Chapter 3.4
Project 2 out
F, Feb 11th Blending and compositing .ppt
Szeliski Chapter 3.3 and 9.3.4
M, Feb 14th Morphology and Point Processing morphology.ppt, PointProcessing.ppt
Szeliski Chapter 3.3.2 and 3.1
W, Feb 16th Lecture by Deva Ramanan, B&H 190
F, Feb 18th Project 3 introduction, Video and texture VideoTextures.ppt, project3intro.pptx
Szeliski Chapter 13.5
Project 3 out Project 2 due
M, Feb 21st No Classes
W, Feb 23th Project 2 presentations, Texture synthesis and filling Texture1.ppt
Szeliski Chapter 10.5
F, Feb 25th Image completion, Graph cut, Scene completion Texture2.ppt, Scene Completion
Szeliski Chapter 9.3.2
M, Feb 28th Image Warping, Exam review warping.ppt
Szeliski 3.6.1
W, Mar 2nd Stereo, Project 4 intro stereo.pptx
Szeliski Chapter 11
Project 3 due
F, Mar 4th Exam 1
M, Mar 7th Project 3 presentation, leveraging the Internet .pptx
Project 4 out
W, Mar 9th Exam recap, Data driven methods: Tiny Images .pptx
Szeliski 15.5.1
F, Mar 11th Data driven methods: gist and sift descriptors .pptx
Szeliski 15.4.4 and 4.1
M, Mar 14th Data driven methods: more features with im2gps .pptx
Szeliski 15.4.3
W, Mar 16th Matting, Transparency, and Illumination .ppt
Szeliski 10.4 and 13.4
Project 4 due
F, Mar 18th Project 4 presentations, Camera phone introduction .pptx Optional phone intro project
M, Mar 21st Modeling light and lightfields .ppt
Szeliski chapter 13.3
W, Mar 23rd Recovering High Dynamic Range .pptx
Szeliski 10.2
F, Mar 25th Tone mapping and Exposure Fusion tone mapping, exposure fusion
Szeliski 10.2
Project 5 out
M, Mar 28th No classes, spring break
W, Mar 29th No classes, spring break
F, Apr 1st No classes, spring break
M, Apr 4th Homographies and mosaics .ppt
Szeliski chapter 9.1
W, Apr 6th Automatic image correspondence .pptx
Szeliski chapter 4.1
F, Apr 8th RANSAC and mosaic wrapup .pptx
Szeliski chapters 6.1 and 9.1.6
Project 6 out Project 5 due
M, Apr 11th Project 6 intro, Image-based lighting .ppt
W, Apr 13th Invited Lecture by Kimo Johnson
F, Apr 15th Project 5 presentations, Coded Aperture Photography .ppt, Levin et al., SIGGRAPH 2007
M, Apr 18th Taking good photographs
W, Apr 20th Photo quality assessment .ppt Final out Project 6 due
F, Apr 22nd Exam 2
M, Apr 25th Invited Lecture by Mathias Eitz
W, Apr 27th Project 6 presentations, Exam 2 recap, Final project discussion
Thursday, Apr 28th IPP Symposium on Visual Computing
F, Apr 29th No classes, reading period
M, May 2nd No classes, reading period
W, May 4th No classes, reading period
F, May 6th No classes, reading period
W, May 11th, 9:00AM (exam period)


The materials from this class rely heavily on slides prepared by other instructors. In particular, many materials are modified from those of Alexei A. Efros, who in turn uses materials from Steve Seitz, Rick Szeliski, Paul Debevec, Stephen Palmer, Paul Heckbert, David Forsyth, Steve Marschner and others, as noted in the slides. Feel free to use these slides for academic or research purposes, but please maintain all acknowledgements.

Similar Courses at other Universities