Computational Photography

CS 674
Fall 2017
Prof. Gianfranco Doretto
West Virginia University, Department of Computer Science and Electrical Engineering


Shortcuts: [eCampus][Class Notes][Handouts][Assignments][Final Project]

Time and Place

First lecture: August 17, 2017

  • Tuesday, 2:00pm - 3:15pm in AGR-E 2010
  • Thursday, 2:00pm - 3:15pm in AGR-E 2010

Office Hours

Thursdays 3:30pm to 4:30pm or by appointment (send email)

Important Dates

  • Midterm Exam: November 28, 2017
  • Final Project: December 8. 2017

Syllabus .pdf

The ubiquity of digital cameras and the internet, coupled with advances in computer vision and graphics, have been the catalysts of computational photography, an emerging field with the goal of going beyond the limitations of conventional photography by proposing new ways in which photographs can be captured, manipulated, and organized.

The general goal of this graduate class is to learn how, by using computational techniques and alternative camera design, computational photography produces a richer representation of our visual world. In particular, in this course, we will study ways of manipulating and combining photographs and videos to enhance the photography experience, by touching upon areas such as mathematical models of light, photo reconstruction and restoration, internet photography, and advanced photography systems and techniques.

Popular algorithms will be presented. Emphasis will be given on using these techniques to build practical systems through programming assignments. These should lead to the development of image analysis and synthesis tools, needed to render novel images on the computer, from previously acquired samples of the real world (images or video).

The topics covered can be roughly summarized as follows:

  • Image formation : Pinhole camera, thin lens model
  • Camera sensor : Aperture, shutter, sensor chip
  • Image filtering : Point processing, filtering, frequency domain, image pyramids
  • Camera DSP : Demosicing, sharpening, balance, correction and compression
  • Image compositing and blending : Cutting images, Laplacian and gradient based techniques
  • Image warping and morphing : Image transformations, inverse warping, triangulations and animations
  • Data driven methods : Texture synthesis, inpainting, super-resolution, face manipulations, internet-based methods
  • Projective geometry : Projections, homogeneous coordinates, and camera calibration
  • Automatic alignment and mosaics : Homographies, feature detection and matching, automatic panorama construction
  • Light models : Plenoptic function, lumigraphs and lightfields
  • Coded systems : deconvolution, coded aperture methods, deblurring, coded shutter methods, applications to biometrics

This course requires programming experience as well as linear algebra, basic calculus, and basic probability. Previous experience with computer vision, image processing and/or computer graphics will be helpful but is not required. Please contact me if you are not sure whether your background is right for the course.


Schedule and Class Notes

Assignments and Attendance

All assignments are due at the beginning of the class on the due date.

Programming Languages
In class examples will be given in Matlab, which should provide an effective way to address the programming assignments and final project needs.

Late Assignment Policy
Each student may use three “late days” for the whole course. The late day count starts from the day and time of the due date of each assignment. Fractional late days are taken into account. Additional “late days” after the first three come at a day cost of 20% of the assignment.

Attendance Policy
Consistent with WVU guidelines, students absent from regularly scheduled examinations because of authorized University activities will have the opportunity to take them at an alternate time. Make-up exams for absences due to any other reason will be at the discretion of the instructor


Final Project

Final project directions


The course format will predominantly consist of lectures. Students will have few simple programming assignments, as well as reading assignments, for which they will have to turn in a critique. Each student will complete a final project, and give a project presentation to the class.

Final grades will be based approximately on the following distribution:

  • 50%: Reading and Programming Assignments (~3 assignments)
  • 25%: Midterm exam
  • 25%: Final project

Bonus points may be assigned based on class participation. In addition, creative solutions to homework problems and programming assignments are appreciated, and may be rewarded by extra bonus points.

Grades will be assigned according to the following scale: A=90-100; B=80-89; C=70-79; D=60-69; F= below 60.


Reference Material


Notes and reading material will be distributed. We will not rely on a textbook, although I recommend the free, online:

  • Class notes and handouts
  • S: Richard Szeliski, Computer Vision: Algorithms and Applications, Springer, 2011. (online) (also avaiable through WVU Electronic Book Collection)

Additional books that can serve as secondary reference on the topics covered in class:

  • Computational Photography: Methods and Applications, by Rastislav Lukac (Editor), CRC Press, 2011. (avaiable through WVU Electronic Book Collection) 
  • The Art and Science of Digital Compositing, Second Edition, by Ron Brinkmann, Morgan Kaufmann, 2008. (avaiable through WVU Electronic Book Collection)
  • Fundamentals of Computer Graphics, Third Edition, by Peter Shirley, Michael Ashikhmin, and Steve Marschner, A K Peters Ltd, 2009
  • Photography, 10th Edition, by Barbara London, John Upton, Jim Stone, Pearson, 2011
  • Digital Image Processing, Third Edition, by Rafael C. Gonzalez, Richard E. Woods, Prentice Hall, 2008
  • Computer Vision: A Modern Approach, by David A. Forsyth and Jean Ponce, Prentice Hall, 2003

Useful Background Material

Inclusivity and Academic Integrity

Adverse Weather Commitment
In the event of inclement or threatening weather, everyone should use his or her best judgment regarding travel to and from campus. Safety should be the main concern. If you cannot get to class because of adverse weather conditions, you should contact me as soon as possible. Similarly, if I am unable to reach our class location, I will notify you of any cancellation or change as soon as possible (by one hour before class starts, using MIX and eCampus) to prevent you from embarking on any unnecessary travel. If you cannot get to class because of weather conditions, I will make allowances relative to required attendance policies, as well as any scheduled tests, quizzes, or other assessments.

Inclusivity Statement
The West Virginia University community is committed to creating and fostering a positive learning and working environment based on open communication, mutual respect, and inclusion.

If you are a person with a disability and anticipate needing any type of accommodation in order to participate in this class, please advise me and make appropriate arrangements with the Office of Disability Services (293-6700). For more information on West Virginia University's Diversity, Equity, and Inclusion initiatives, please see

Integrity Statement
The integrity of the classes offered by any academic institution solidifies the foundation of its mission and cannot be sacrificed to expediency, ignorance, or blatant fraud. Therefore, I will enforce rigorous standards of academic integrity in all aspects and assignments of this course. For the detailed policy of West Virginia University regarding the definitions of acts considered to fall under academic dishonesty and possible ensuing sanctions, please see the Student Conduct Code at Should you have any questions about possibly improper research citations or references, or any other activity that may be interpreted as an attempt at academic dishonesty, please see me before the assignment is due to discuss the matter.