EE367/CS448I: Computational Imaging and Display

Winter 2018
Lecture: Tuesdays and Thursdays, 10:30-11:50 am, Gates B3
Problem session: Fridays, 1:30-2:20 pm, Skilling Auditorium
Instructors: Gordon Wetzstein, Isaac Kauvar (TA), Varsha Sankar (TA)

Light field photograph of the 2017 class. Top row, from left: front focus, center focus, rear focus. Click on the images for high-resolution pictures that were refocused from the light field in post-processing. Bottom row, from left: contrast-enhanced depth map computed from the light field and rectified, raw light field. Click on the images to see the original, full-resolution data.

Course Description

Computational imaging systems have a wide range of applications in consumer electronics, scientific imaging, HCI, medical imaging, microscopy, and remote sensing. We discuss light fields, time-of-flight cameras, multispectral imaging, thermal IR, computational microscopy, compressive imaging, computed tomography, computational light transport, compressive displays, phase space, and other topics at the convergence of applied mathematics, optics, and high-performance computing related to imaging. Hands-on assignments. Prerequisites: EE 261 or equivalent (basic signal processing) and EE 263 or equivalent (linear systems/algebra). Course Catalog Entry

Topics include:

Helpful Background

This course requires programming experience (especially Matlab) as well as knowledge of linear algebra, basic calculus, and optimization. The second class will review most of the required mathematical concepts (see tentative schedule below). Previous knowledge of computer graphics and computer vision will be helpful.
Courses that will be very helpful, but which are not absolutely required:
Related courses at Stanford that you may also find interesting:
A few of the course topics overlap with different parts of related courses.

Important Class Information

Requirements and Grading

The course requirements include: (1) six assignments, (2) an in-class midterm (80 minutes long), and (3) a major final project, including a project proposal, final report, source code, and a poster (or video) presentation.

Your final grade will be made up from There are no "late days" for the assignments. If you choose to submit an assignment late, we will accept it for up to 24h after the submission deadline with a 30% penalty (final grade multiplied by 0.7).


Different equipment will be available for use in the projects: Intel RealSense, Lytro Illum, Time of Flight cameras, machine vision and SLR cameras, The Eye Tribe (gaze tracker), Olympus Air / Open Camera Platform, ...


No textbook, students are expected to read relevant literature as discussed in class.

Pinhole Camera Gallery

You can find some notable pinhole camera photos from previous offerings here

Class projects

Tentative Syllabus

Class Date Topic Details Slides Additional Readings Assignments
Week 1


Introduction and fast forward overview of class, logistics, discussion of project ideas lecture1.pdf


The human visual system perception of color, depth, contrast, resolution lecture2.pdf - Hybrid images paper HW1 out


Problem session PS1
Week 2


Digital photography I optics, aperture, depth of field, exposure, noise, sensors lecture3.pdf - archived course CS 178


Digital photography II image processing pipeline lecture4.pdf - Demosaicing paper
- Non-local means paper
- Intro to bilateral filter
HW2 out


Problem session PS2 HW1 due at noon
Week 3


Sampling, Linear Systems review of sampling, regularized linear systems lecture5.pdf


Deconvolution inverse filtering, Wiener filtering, total variation, ADMM lecture6.pdf - Lecture notes: deconvolution
- ADMM paper
HW3 out


Problem session PS3 HW2 due at noon
Week 4


Burst photography HDR, tone mapping, super-resolution, flash/no-flash, multi-flash lecture7.pdf - HDR paper
- Tone mapping paper


Light field photography camera arrays, lytro, coded masks, refocus, fourier slice theorem lecture8.pdf - original light field paper
- other light field paper
- light field thesis
HW4 out


Problem session PS4 HW3 due at noon
Week 5


Coded computational photography extended depth of field, motion invariance, flutter shutter lecture9.pdf - flutter shutter paper


Noise signal independent noise, signal-dependent noise, image reconstruction with noise lecture10.pdf - Lecture notes: noise and deconvolution with noise HW5 out


Problem session PS5 HW4 due at noon
Week 6


Compressive imaging single pixel camera, compressive sensing, compressive hyperspectral imaging, compressive light field imaging lecture11.pdf - Lecture notes: single pixel camera Project proposal due


Computational illumination and light transport Structured illumination, photometric stereo, shape from specularities, optical computing lecture12.pdf HW6 out


Problem session PS6 HW5 due at noon
Week 7


Introduction to computational microscopy fluorescence, 3D microscopy, confocal, light field, light sheet, two-photon, etc. lecture13.pdf


Advanced Optimization in Computational Imaging guest lecture


HW6 due at noon
Week 8


In-class midterm


Displays blocks LCDs, SLMs, OLEDs, stereo displays, light field displays lecture14.pdf


Week 9


Computational displays HDR displays, projection displays, vision-correcting displays, volumetric displays lecture15.pdf


Wearable displays head-mounted displays (HMDs), virtual reality (VR), augmented reality (AR) lecture16.pdf


Week 10


Final project poster presentation
Packard Atrium, 9:30-11:50 am
Poster printing instructions



Project reports and code due (until Fri, 3/16, 11:59pm)
Tue, 3/27 Grades due

Computing Resources

The computers in the Stanford Center for Image Systems Engineering (SCIEN) Lab can be used to do your work in this class, although you can choose to use other university machines or your own computer. These machines are located in Room 001 (basement) of the Packard building. To get access to this room, please email the course staff.

The SCIEN computers are equipped with MATLAB (with the Image Processing Toolbox). They use the same username/password login as your normal SUNet account, and all your regular files on the Stanford network appear when you log into a SCIEN computer. The SCIEN machines can be remotely accessed using Microsoft Remote Desktop on the Stanford network. The device names are through The login is win\SUNetID and the password is your SUNet password. If connecting from off campus, you will need to use the Stanford VPN service. Only two students can simultaneously access one given device, so you may want to try another one if your access gets denied. If you have difficulty accessing the lab resources, please reach out to Steven Clark ( or John DeSilva ( for help.

You can find up-to-date information about our teaching labs and lab 64, including computing and hardware resources, on this wiki:

For basic tutorials on MATLAB, please look here.

Poster Printing Instructions

To have your poster printed, send your poster in .pdf format to
Send the poster at least 3 hours before you want it printed!
Please include the dimensions (size) of your poster. See the poster template for the suggested size and design.
Please include the class / conference / event where the poster will be presented.
When your poster is ready you will receive an email telling you where your poster may be picked up.
For more info: Poster printing instructions


Some of the materials used in class build on that from other instructors. In particular, we will use some materials from Marc Levoy, Fredo Durand, Ramesh Raskar, Shree Nayar, Paul Debevec, Matthew O'Toole and others, as noted in the slides. The website was adopted from James Hays (thanks!). Feel free to use these slides for academic or research purposes, but please maintain all acknowledgments.