CS 534: Computational Photography
Office: 6379 Computer Sciences Building
Office Hours: Mondays and Wednesdays 2:00 - 3:00 p.m., and by appointment
Teaching Assistant: Qisi Wang
Office: 1308 Computer Sciences Building
Office Hours: Tuesdays and Thursdays 11:45 a.m. - 12:45 p.m., and by appointment
Lecture: 1:00 p.m. - 2:15 p.m. Tuesdays and Thursdays, Room 1221 CS
CS 367 or programming experience, and some knowledge of linear algebra and calculus
None, but readings will be assigned from papers and some sections in
Computer Vision: Algorithms and Applications, R. Szeliski, September 3, 2010 draft (Note: you do NOT need to buy this book.)
We are in the early years of an explosive growth of digital images, with an estimated one trillion photos
taken in 2015 alone. About half of the images now taken are captured using camera phones.
cameras allow easy capture of many images, billions of images are publicly available on the web,
and computer storage and processing of digital images is cheap and easy, there is now emerging a wide
range of new computational techniques and applications for capturing, analyzing, manipulating,
combining, augmenting, searching, synthesizing, and using images. Computational Photography is a new field that
brings together photography, optics, computer vision, and computer graphics to overcome the limitations of
traditional cameras by creating new photographic functionalities and experiences of our visual world
from sets of images. For example, Microsoft's Photosynth application allows users to interactively
navigate around a 3D location by building a sparse 3D model from a large number of images.
Key component image manipulation methods include warping, morphing, filtering, mosaicing, texture synthesis,
segmentation, high dynamic range imaging, image blending and compositing, merging images taken at multiple exposures
under different lighting conditions, and building 3D models
from a set of images taken from multiple viewpoints of an object or scene.
- Midterm exam: 25%
- Homework assignments: 45%
- Course project: 20%
- Course project presentation: 5%
- Class attendance and participation, including Piazza Q&A: 5%
- Midterm: Tentatively Thursday, October 27, 7:15 p.m. - 9:15 p.m., room to be determined
- List of topics and readings for the midterm exam
- There will not be a Final Examination
- Exam grading questions must be resolved with the instructor within one week after it is returned
Homework assignments will include written
problems, using applications software, and programming in Matlab.
There are many online resources for learning Matlab (e.g., see
but if you want to buy a book, the following one is
a good, simple introduction: Matlab Primer, 7th ed., T.A. Davis and K. Sigmon, Chapman and Hall Publishers, 2004.
Another good alternative introductory book is:
Getting Started with Matlab 7, R. Pratap, Oxford University Press, 2005.
Accounts will be provided on the Computer Science Department's instructional
Linux and Windows workstations.
Assignment grading questions must be resolved with the instructor or TA within one week after it is returned.
All assignments are due at 11:59 p.m. on the due date.
One (1) day late, defined as a 24-hour period from 11:59 p.m.
to 11:59 p.m. the next day (weekday or weekend), will result in 10% of the
maximum points for the assignment
deducted. So, for example, if an assignment is due on a Wednesday and it is
handed in any time on Thursday, a 10% penalty will
be deducted. Two (2) days late, 25% off; three (3) days late, 50% off.
No homework can be turned in more than three (3) days late regardless of any free late days used.
A total of three (3) free late days may be used during the
course so that no late penalty is deducted. Free late days will be used automatically for the first late days incurred.
All examinations, programming assignments, and written problems must
be done individually unless explicitly stated otherwise. Cheating and
plagiarism will be dealt with in accordance with University
procedures (see the
UW Academic Integrity Policies and Procedures).
Hence, for example, code for programming assignments must not
be developed in groups, nor should code be shared, and code should not be obtained from
anyone or anywhere, including the Web. You are
encouraged to discuss with your peers, the TA or
the instructor ideas, approaches and techniques broadly, but not at a level
of detail where specific implementation issues are described by anyone.
If you have any questions on this, ask the instructor before you act.
Moodle Page for Assignment Electronic Hand-In
Moodle course page
Piazza Class Discussion Page