Introduction
This course serves as an introduction to Computational Photography, a study of the perceptual and technical aspects of the capture and depiction of reality by computational means.
Topics include basic image operations, filters, transformations and feature point detection. Applications such as creating panoramas, high-dynamic range images, image morphing, inpainting and retargeting will be used to illustrate applicability of the basic operations.
There are programming assignments in this class, and a familiarity with Python is required. A working knowledge of linear algebra is helpful, and we will brush up against topics from calculus and probability as well.
Summer 2024 - Jay Summet
Weekly Schedule & Resources
Week 1: Welcome, OpenCV, Digital Images
OpenCV Code Examples
OpenCV Documentation & Tutorials
Week 2: Pinhole Cameras, Rays
Week 3: Linear Filters: Correlation & Convolution
Week 4: Gradients & Edges
Week 5: Optics / Lenses / Sensors
- Suggested Readings: Szelinski Section 2.1.5 Lens Distortions (pgs 63-66), 2.2.3 Optics (pgs 74-79).
- The "Vertigo" Effect - Dolly zoom - camera motion combined with focal length change (zoom) to keep the subject at the same size while compressing/expanding the background. [Jaws | GOTG2 | Zoom vs physical dolly movement | Simulated zoom in software]
- CD: Shutter Speed - Shutter speed, CCD vs CMOS, Mechanical vs Digital & Rolling shuters
Week 6: Frequency & Laplacian Pyramids
Week 7: Image Seams & Feature Point Matching
Week 8: Transforms, Panoramas, Warping & Morphing
Week 9: High Dynamic Range (HDR), Exposure Fusion & Stereo Vision
Week 10: Video, Video Stabalization, Projector-Camera Systems
Week 11: Video Textures, Final Exam, Project Presentations
Assignments
Student Portfolio
Project 1:
Project 2:
Project 3:
Group Image Stitches