Skip to content

Computational Photography

Free Course

Offered at Georgia Tech as CS 6475

Related Nanodegree Program

Artificial Intelligence

In collaboration with
  • Georgia Institute of Technology

About this 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.

What you will learn

  1. Introduction
    • What is Computational Photography?
    • Dual Photography
    • Panorama
  2. Digital Imaging
    • Point Processes, Smoothing
    • Blending Modes, Convolution and Cross-Correlation
    • Gradients and Edges
  3. Cameras
    • Lenses
    • Exposure
    • Sensor
  4. Comp Vision to Comp Photo
    • Fourier Transform
    • Blending
    • Pyramids
  5. Applications
    • Panorama
    • HDR
    • Time Lapse
  6. Light Field
    • Lightfield
    • Lightfield Camera
  7. Blue / De-Blur
    • Lucy-Richardon Blur
    • Flutter Shutter
  8. Video
    • Video
    • Video Textures
    • Video Stabilization
  9. Closing Thoughts

    Prerequisites and requirements

    Students should be familiar with:

    • College-level linear algebra and calculus: Knowledge of matrices, vectors, differentiation and integration, although the focus will be more on understanding and applying mathematical structures - not necessarily deriving your own;
    • Physics: Vectors, optics;
    • Probability theory: Distributions, density functions.

    Programming assignments for this course can be completed either using Python-OpenCV (recommended platform) or Matlab/Octave. Working knowledge of either Python or Matlab would thus be required.

    See the Technology Requirements for using Udacity.

    Why take this course?

    You will undertake a hands-on approach over the entire term using computational techniques, merged with digital imaging processes to produce photographic artifacts. In addition to understanding how various elements of the computational photography pipeline function together to produce novel - and sometimes stunning - results, you will be given ample opportunity to appreciate and critique artifacts produced/curated by your peers.

    Learn with the best.

    • Irfan Essa
      Irfan Essa


    • David Joyner
      David Joyner


    • Arpan Chakraborty
      Arpan Chakraborty