Description: [SCS dragon logo]

CS194-26 (CS294-26): Image Manipulation and Computational Photography
Computer Science Division
University of California Berkeley

INSTRUCTOR: Alexei (Alyosha) Efros (Office hours: Wednesdays 2-3pm, at 724 Sutarja Dai Hall)
GSI: Shiry Ginosar  (Office hours: Fridays 2-4PM Soda 651, starting 9/19)
GSI: Shubham Tulsiani  (Office hours: Mondays 2:30-4PM Soda 651)
SEMESTER: Fall 2014
Q&A: Piazza Course Website
HW SUBMISSIONS: how to submit

LOCATION: 306 Soda
: M F 4:00-5:30 PM

Computational Photography is an emerging new field created by the convergence of computer graphics, computer vision and photography. Its role is to overcome the limitations of the traditional camera by using computational techniques to produce a richer, more vivid, perhaps more perceptually meaningful representation of our visual world.

The aim of this advanced undergraduate course is to study ways in which samples from the real world (images and video) can be used to generate compelling computer graphics imagery. We will learn how to acquire, represent, and render scenes from digitized photographs. Several popular image-based algorithms will be presented, with an emphasis on using these techniques to build practical systems. This hands-on emphasis will be reflected in the programming assignments, in which students will have the opportunity to acquire their own images of indoor and outdoor scenes and develop the image analysis and synthesis tools needed to render and view the scenes on the computer.


  • Cameras, Image Formation
  • Visual Perception
  • Image and Video Processing (filtering, anti-aliasing, pyramids)
  • Image Manipulation (warping, morphing, mosaicing, matting, compositing)
  • Modeling and Synthesis with Visual Big Data
  • High Dynamic Range Imaging and Tone Mapping
  • Image-Based Lighting
  • Image-Based Rendering
  • Non-photorealistic Rendering

Programming experience and familiarity with linear algebra and calculus is assumed.  Some background in computer graphics, computer vision, or image processing is helpful.  This class does not significantly overlap with cs184 (Computer Graphics) and can be taken concurrently.
PhD Students: a small number of PhD students will be allowed to take the graduate version of this course (CS294-26) with the permission of the instructor. Students taking CS294-26 will be required to do more substantial assignments as well as a research-level final paper.
Note: if the system doesn't let you sign up, or puts you on the waitlist, do talk to me.


Project 1: Images of the Russian Empire -- colorizing the Prokudin-Gorskii photo collection

See student responses here
Class Choice Awards: Kong Cheung


Project 2: Building a Pinhole Camera

camera obscura

See student responses here
Class Choice Awards:Rachel Albert


Project 3: Fun with Frequencies!

Lincolnorplehand and eye

See student responses here
trophy Class Choice Awards:
Riyaz Faizullabhoy


Project 4: Seam Carving - for the cs194-26 class


See student responses here
trophy Class Choice Awards:
Howard Nguyen

Project 4g: Gradient Domain Fusion - for the cs294-26 class (and any one else that wants to)


See student responses here
trophy Class Choice Awards:
Weilun Sun & Anthony Sutardja


Project 5: Face Morphing and Modelling a Photo Collection


See student responses here
trophy Class Choice Awards: Rachel Albert
, Alan Yao


Project 6: Depth Refocusing and Aperture Adjustment with Lightfield data


See student responses here
trophy Class Choice Awards
: Riyaz Faizullabhoy


Project 7: (Auto)stitching and photo mosaics


See student responses here for part 1 part 2 and part 3 (for grad students)
trophy Class Choice Awards
: Japheth Wong


Final Project


(Image courtesy of Fredo Durand).

See student responses here

There is now a textbook that covers most (if not all) of the topics related to Computational Photography.  This will be the primary reference for the course:

            Computer Vision: Algorithms and Applications, Richard Szeliski, 2010

There is a number of other fine texts that you can use for general reference:

Photography (8th edition), London and Upton, (a great general guide to taking pictures)
Vision Science: Photons to Phenomenology, Stephen Palmer (great book on human visual perception)
Digital Image Processing, 2nd edition, Gonzalez and Woods (a good general image processing text)
The Art and Science of Digital Compositing, Ron Brinkmann (everything about compositing)
Multiple View Geometry in Computer Vision, Hartley & Zisserman (a bible on recovering 3D geometry)
The Computer Image, Watt and Policarpo (a nice "vision for graphics" text, somewhat dated)
3D Computer Graphics (3rd Edition), Watt (a good general graphics text)
Fundamentals of Computer Graphics, Peter Shirley (another good general graphics text)
Linear Algebra and its Applications, Gilbert Strang (a truly wonderful book on linear algebra)

The instructor is extremely grateful to a large number of researchers for making their slides available for use in this course.  Steve Seitz and Rick Szeliski have been particularly kind in letting me use their wonderful lecture notes.  In addition, I would like to thank Paul Debevec, Stephen Palmer, Paul Heckbert, David Forsyth, Steve Marschner and others, as noted in the slides.  The instructor gladly gives permission to use and modify any of the slides for academic and research purposes. However, please do also acknowledge the original sources where appropriate.






Fri Aug 29


Fri Sept 5

Capturing Light... in man and machine

Mon Sept 8

The Camera
Pinhole Camera

  • Szeliski Ch. 2
  • Slides: pdf ppt


Fri Sept 12

Sampling and Reconstruction

Mon & Fri
Sept 15/19

Sampling and Reconstruction

  • Continue Szeliski Ch 3
  • Slides: pdf ppt

Mon Sept 22

The Frequency Domain and Filtering

  • Continue Szeliski Ch 3
  • Slides: pdf pptx

Fri Sept 26

Image Blending and Compositing

Mon Sept 29

Point Processing and Image Warping

  • Continue Szeliski Ch 3, 2.1.2
  • Slides: pdf ppt

Fri Oct 3
Mon Oct 6

Image Morphing

  • Continue Szeliski Ch 3
  • Slides: pdf ppt

Fri Oct 10

Data-driven Methods: Faces

Mon Oct 13

Data-driven Methods: Visual Data on the Internet (part 1)

Fri Oct 17

Data-driven Methods: Visual Data on the Internet (part 2)


Mon Oct 20

Data-driven Methods: Visual Data on the Internet (part 3)

Fri Oct 24

Modeling Light

Mon Oct 27

Homographies and Mosaics

  • Szeliski Ch 9
  • Slides: pdf ppt

Fri Oct 31

More Mosaic Madness

Mon Nov 3

Guest Lecture - Mark Lescroart

Fri Nov 7

Automatic Alignment

Mon Nov 10

Single View Reconstruction
1 2

Fri Nov 14

Multi-perspective Panoramas

Mon Nov 17

High Dynamic Range Images

Fri Nov 21

Image-based Lighting
1 2 3


Mon Nov 24

Midterm exam!

Mon Dec 1

Image-based Lighting II

Fri Dec 5

What makes a great picture?

Although it is not required, students are highly encouraged to obtain a digital camera for use in the course.

Grading will be based on a set of programming and written assignments (60%), an exam (20%) and a final project (20%).  For the programming assignments, students will be allowed a total of 5 (five) late days per semester; each additional late day will incur a 10% penalty.

Students taking CS294-26 will also be required to submit a conference-style paper describing their final project.

Students will be encouraged to use Matlab (with the Image Processing Toolkit) as their primary computing platform.  Besides being a great prototyping environment, Matlab is particularly well-suited for working with image data and offers tons of build-in image processing functions.  Here is a link to some useful Matlab resources

Previous offerings of this course can be found here.



Page design courtesy of Doug James