Preparing video…

Computational Photography

In this course you will learn about the basics of how computation has impacted the entire workflow of photography (i.e., from how images are captured, manipulated and collaborated on, and shared).

Sessions

Course at a Glance

About the Course

The goal of this course is to introduce you to the basics of how computation has impacted the entire workflow of photography (i.e., from how images are captured, manipulated and collaborated on, and shared).  

The course begins with a conceptualization of photography as drawing with light and the capturing of light to form images/videos.  You will learn about and understand how the optics and the sensor within a camera are generalized, as well as learn about and understand how the lighting and other aspects of the environment are also generalized through computation to capture novel images. 

Pre- and post-processing techniques used to manipulate and improve images will be discussed.  Activities in this course are selected to give you first hand experience with the power of the web and the Internet for both analyzing and sharing images.  

This course is interdisciplinary and draws upon concepts and principles from computer vision, computer graphics, image processing, mathematics and optics.

We look forward to your engagement and participation with both the course and its discussion forums.

About the TA
Denis Lantsman is the TA for the class. Denis is a graduate of Harvey Mudd College, and is currently finishing his MS in Machine Learning at Georgia Tech. He is responsible for managing the coursera site, monitoring the forums for student feedback, creating the homework assignments and quizzes, as well as recording weekly tutorials to help students with their programming.

Course Syllabus

Week 0 (Module 0):  Introductions with an overview of the course structure and content.  Topics covered in this module include a description of what is Computational Photography (i.e., whereby examples of dual photography and panoramas are described) and reasons for studying this emerging interdisciplinary field .

Week 1 (Module 1):  Overview of what is a digital image.  Topics covered in this module are image processing and filtering, with emphases placed upon point processes, smoothing, convolution, cross-correlation, gradients and edges.

Week 2 (Module 2):  Overview of cameras with emphases placed upon the pinhole camera and optics (e. g., lenses, focal length), exposure time and sensors.          

Week 3 (Module 3):  Feature detection, matching and correspondence. The panorama pipeline and some examples. HDR and tone mapping.

Week 4 (Module 4): Overview of light fields, texture synthesis, image retargeting, video, advanced topics.

Recommended Background

College-level Mathematics (e.g., Linear Algebra, Calculus) is useful for this course.  You should know what are Matrices, Vectors, Differentiation, and Integration.  A working knowledge of Basic Probability (e.g., Probability Density Function) is needed.  Also, a working knowledge of General Physics (e.g., Vectors, Optics), Basic Photography, and Basic Computer Programming are needed.  You will need to download and install software to do the programming assignments, which will be in the programming language of Python.

Suggested Readings

No textbook is required for this course; however, specific textbooks, readings, and resources are identified during the on-line lecture videos.

Course Format

The class will consist of on-line lecture videos, which are between 5 and 18 minutes in length.  There will be a set of quizzes to complete for every module, and a (not optional) final examination.  The course will consist of five standalone programming homework assignments that are not part of the video lectures.  In order to complete homework assignments, there are on-line video tutorials that describe how to use the software that you were asked to download for the course.  The video tutorials are between 4 and 15 minutes in length.

FAQ

  • Will I get a statement of accomplishment after completing this class?
  • Statement of accomplishment will be provided by Georgia Tech C21U .

  • What resources will I need for this class?
  • You will need access to a camera and access to a computer with internet, and time.

  • How much math do I need to know?
  • College-level Mathematics (e.g., Linear Algebra, Calculus) is useful for this course.  You should know what are Matrices, Vectors, Differentiation, and Integration.  A working knowledge of Basic Probability (e.g., Probability Density Function) is needed.  

  • How much programming do I need to know?
  • We will use Python with OpenCV to do the programming assignments. We will provide the information to locate the freeware software; however, downloading and installing the software is your responsibility. While we will provide basic instructions for installation on Windows, Mac OSX and Linux platforms, software and hardware platforms are diverse, and it is impossible for us to predict and provide exact installation guidelines for all users and their computers.