CS 4475 / 6475* (3-0-3): Computational Photography – (Instructor: Irfan Essa) – This class explores how computation impacts the entire workflow of photography, which is traditionally aimed at capturing light from a (3D) scene to form an (2D) image. A detailed study of the perceptual, technical and computational aspects of forming pictures, and more precisely the capture and depiction of reality on a (mostly 2D) medium of images is undertaken over the entire term. The scientific, perceptual, and artistic principles behind image-making will be emphasized, especially as impacted and changed by computation. Topics include the relationship between pictorial techniques and the human visual system; intrinsic limitations of 2D representations and their possible compensations; and technical issues involving capturing light to form images. Technical aspects of image capture and rendering, and exploration of how such a medium can be used to its maximum potential, will be examined. New forms of cameras and imaging paradigms will be introduced. Students will undertake a hand-on approach over the entire term using computation techniques, merged with digital imaging processes to produce photographic artifacts. (CS 4475 is for Undergraduate Students and CS 6475 for Graduate Students, with some additional requirements for assignments and readings for the Graduate section.).
DO NOTE that there are programming assignments in this class, and working knowledge of Linear Algebra, Calculus, Probability, and Programming in C++/Python/Matlab/Java will be required. OpenCV OR Matlab are used in this class as appropriate.
- Introduction to Computational Photography
- History of Photography and Computational Photography
- Digital Representation of Images
- Image Processing, Filtering
- Feature Detection and Matching
- Cameras, Optics, and Sensors
- Light, Aperture, and Exposure
- Image Editing and Synthesis
- Image Blending
- Epsilon Photography
- High-Dynamic Range Imaging
- Image Mosaics, Montages, Collages
- Computational Cameras
- Coded Photography
- Computational Video
- Video Textures and Video Synthesis
- Image and Video Stabilization
- Plenoptic Imaging and Light Fields
Overall, in this class. you will learn about:
- The Medium of Computational Photography (History to Modern Technologies)
- Digital Imaging (Sensors to Software)
- Computational Processes associated with Imaging and Photography
- Computation as applied to Digital Media.
- Image Analysis and Synthesis
- Novel forms of Computational Imaging
- Images and Photography on the Web/Internet
- Storytelling with images (and computation).
Assignments and ideas on this syllabus build on those from everyone who has taught this material before. See [Resources] for pointers to other information that supports this class.