Welcome to Georgia Tech’s CS 4475/6475 Computational Photography course! This class explores how computation impacts the entire workflow of photography, which is traditionally aimed at capturing light from a (3D) scene to form a (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 hands-on approach over the entire term using computation techniques, merged with digital imaging processes to produce photographic artifacts.

Required Background Knowledge

The course will involve programming assignments and projects that will test the student’s understanding of the concepts taught in class. The following will be necessary to keep up with the pace of the course:

  • Working knowledge of computer programming (preferably Python).
  • College-level mathematics (knowledge of matrices, vectors, differentiation, and integration)
  • Physics (vectors, optics)
  • Probability (probability density functions)
  • Basic knowledge about the functioning of a camera (controlling shutter speed, ISO, aperture)
  • Prior experience with using OpenCV and NumPy is preferable

Technical Requirements and Software

  • Internet connectivity
  • Camera (preferably one with granular control over aperture, shutter speed, and ISO)
  • Operating system:
    • PC: Windows 8 or higher
    • Mac: OS X 10.6 or higher with latest updates installed
    • Linux: any recent distribution will work so long as you can install Python and OpenCV bindings
  • Anaconda