EE367/CS448I: Computational Imaging and Display

Winter 2020
Lecture: Mondays and Wednesdays, 3-4:20 pm, Thornt 102
Problem session: Fridays, 2:30-3:20 pm, Gates B03
Instructors: Gordon Wetzstein, David Lindell (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).

The final project grade takes into account your poster presentation (organization of poster, clarify of presentation, ability to answer question), your source code submission (code organization and documentation), and your final project report (approriate format and length, abstract, introduction, related work, description of your method, quantitative and qualitative evaluation of your method, results, discussion & conclusion, bibliography).

Course Projects, Project Proposal, and Final Report

You can work in teams of up to 3 students for the project. Submit only one proposal and final report for each team. The expected amount of work is relative to the number of team members, so if two teams work on a similar project, we'd expect less work from a smaller team. Before you start to work on the proposal or the report, take a look at some of the past project proposals and reports to give you sense for what's expected.

The project proposal is a 1-2 page document that should contain the following elements: clear motivation of your idea, a discussion of related work along at least 3 scientific references (i.e., scientific papers not blog articles or websites), an overview of what exactly your project is about and what the final goals are, milestones for your team with a timeline and intermediate goals. Once you send us your proposal, we may ask you to revise it and we will assign a project mentor to your team.

The final project report should look like a short (~6 pages) conference paper. We expect the following sections, which are standard practice for conference papers: abstract, introduction, related work, theory (i.e., your approach), analysis and evaluation, results, discussion and conclusion, references. To make your life easier, we provide an MS Word and a LaTex template that you can use to get started on your report.


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 and outlined in the "additional readings" section of the syllabus.

Pinhole Camera Gallery

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

Class Projects of Previous Offerings

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.pdf
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.pdf HW1 due at noon
Week 3


Martin Luther King Day
No Class!


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


Problem session PS3.pdf HW2 due at noon
Week 4


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


Burst photography HDR, tone mapping, super-resolution, burst denoising lecture7.pdf - HDR paper
- Tone mapping paper
HW4 out


Problem session PS4.pdf HW3 due at noon
Week 5


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


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


Problem session PS5.pdf HW4 due at noon
Week 6


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


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


Problem session PS6.pdf HW5 due at noon
Week 7


President's Day
No Class!


Time-of-flight imaging single-photon detectors, 3D imaging systems, looking around corners lecture12.pdf


HW6 due at noon
Week 8


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


In-class Midterm!


Week 9


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


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


Week 10


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


Final project poster presentation
Packard Atrium, 3-5:30 pm
Poster printing instructions


Project reports and code due (until Fri, 3/13, 11:59pm)


Grades due

Computing Resources

All homeworks will be using MATLAB (Image Processing Toolbox is required). If you do not have a license, which you can get at a discounted student price on Stanford's Software licensing web store, you can use FarmShare. FarmShare allows you to use MATLAB and other software remotely from your computer.

For basic tutorials on MATLAB, please look here.

Poster Printing Instructions

Detailed instructions for printing your poster can be found here:

The quick summary:

Video Recordings and Privacy

Video cameras located in the back of the lecture room will capture the instructor presentations in this course. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.


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.