CPSC 4040/6040 - Computer Graphics Images - Fall 2015

Instructor: Joshua A. Levine
Meets: T/R 3:30-4:45pm, 138 Lehotsky Hall
Office Hours: by appointment, 317 McAdams Hall

Open Help Session: W 9:00-11:00am, 110D McAdams Hall
Grader: Dachao Sun


We focus on the theory and practice behind the generation and manipulation of digital images within a computer graphics context. Topics include image representation and storage, sampling and reconstruction, color systems, affine and general warps, enhancement and morphology, compositing, morphing, and non-photorealistic transformations.

Digital images have the advantages, over any other form of image, of lossless storage, transmission, and retrieval. Their form enables generation, manipulation, and display within a computing environment, and they provide a natural syntax for image representation that pervades the world of computer graphics and visualization. An understanding of the nature, form, and technology of the digital image is essential to anyone who will be making use of these images in their academic or professional career.


Schedule (tentative, subject to change)


Week Date Tuesday Date Thursday
1 8/18 -- No Class -- 8/20 Introduction
2 8/25 OIIO and OpenGL 8/27 File Formats
3 9/1 Displays and Optics 9/3 Color and Perception
4 9/8 Compositing 9/10 Green Screening
5 9/15 Deep Images 9/17 Deep Images, Pt.2
6 9/22 Point Processing 9/24 Histograms and Filtering
7 9/29 Region Processing 10/1 Region Processing, Pt.2
8 10/6 Sampling and Interpolation 10/8 HDR Imaging + Tone Mapping
9 10/13 -- Fall Break -- 10/15 Project Proposals
10 10/20 Warping Intro 10/22 Perspective Warps
11 10/27 -- IEEEVis / No Class -- 10/29 -- IEEEVis / No Class --
12 11/3 Projective and Bilinear 11/5 Artifacts / Morphing
13 11/10 Panoramas 11/12 Frequency Domain
14 11/17 -- SC15 / No Class -- 11/19 -- SC15 / No Class --
15 11/24 Frequency Analysis 11/26 -- Thanksgiving Break --
16 12/1 Lossy Image Formats 12/3 Final Projects

Final Exam: Friday, 12/11, 11:30-2:00pm




Lectures

Introduction

Slides: lec01.pdf

Required Reading: Recommended Reading:


Lecture 02 - OIIO and OpenGL

Slides: lec02.pdf

Required Reading:
  • OIIO, Ch.2, 3.1, 4.1
Recommended Reading: Code Samples:
  • GL Square - This is a great starting point for Lab 1.
  • RGB Cube - Useful for seeing mouse interactions and multiple windows
  • OIIO Read Example - from in class experimentation, reads an image using OIIO and displays a little information about the image
  • OIIO Write Example - from in class experimentation, writes a very tiny image using OIIO, try experimenting with it


Lecture 03 - File Formats

Programming Assigment 01 Assigned, due Tues. 9/8, 11:59pm

Slides: lec03.pdf

Required Reading:
  • Hunt, 3.1, 3.3, 4.2, 10.2
  • House, 5.1, 5.2


Lecture 04 - Displays and Optics

Slides: lec04.pdf

Required Reading:
  • Hunt, Ch.2. 3.4.2
  • House, 3.1, 3.2
Recommended Reading:


Lecture 05 - Color and Perception

Quiz 01 Assigned, due Thurs. 9/10, 3:30pm

Slides: lec05.pdf

Required Reading:
  • Hunt, 3.2 (all), 3.3.2
  • House, Ch.4
Recommended Reading:


Lecture 06 - Compositing

Programming Assigment 02 Assigned, due Tues. 9/15, 11:59pm

Slides: lec06.pdf

Required Reading:
  • House, Ch.7
Recommended Reading:


Lecture 07 - Green Screening

Slides: lec07.pdf

Required Reading:
  • The Art and Science of Digital Compositing - Ron Brinkmann (a preview of Ch.6 is on blackboard)
Recommended Reading:


Lecture 08 - Deep Images

Programming Assigment 03 Assigned, due Tues. 9/29, 11:59pm

Slides: lec08.pdf

Required Reading: Recommended Reading: Tools and Tutorials:


Lecture 09 - Deep Images, Pt.2

Required Reading: Recommended Reading (see exercise/tutorial files for sample EXR images): Code Samples:
  • flatview.zip - Simple flat image reader that supports transparency in the display
  • simple_deepview.zip - Simple deep image reader that only displays the first sample for each pixel
  • num_samples.zip - Displays, in greyscale, the number of samples for each pixel
  • layered_deepview.zip - Layered deep image reader that allows you to cycle through the samples at each pixel
  • gl_composite.zip - Compositing deep image reader that will composite all of the channels in a single deep image using glBlend() (we did this in class)
  • composited_deepview.zip - Compositing deep image reader that will composite all of the channels in a single deep image using the over operator (not shown in class)
  • matteview.zip - Displays additional channels (in this case, Matte.i) as a greyscale. Also demonstrates reading non-floating point channel information
  • test_images.zip - A collection of images, old and new, for testing


Lecture 10 - Point Processing

Slides: lec10.pdf

Required Reading:
  • House, Ch.8
  • Hunt, 5.1-5.6


Lecture 11 - Histograms and Filtering

Quiz 02 Assigned, due Thurs. 10/1, 3:30pm

Slides: lec11.pdf

Required Reading:
  • House, 8.2.1, 8.2.2
  • Hunt, 5.6, 6.6, 6.7
Recommended Reading:


Lecture 12 - Region Processing

Programming Assigment 04 Assigned, due Thurs. 10/15, 11:59pm

Slides: lec12.pdf

Required Reading:
  • House, 8.2.3, 8.2.4
  • Hunt, 6.1-6.5
Recommended Reading:
  • Szeliski, 3.2 (available through campus library)
  • Digital Image Processing - Gonzalez and Woods - Sections 3.4-3.6 (a preview is on blackboard)


Lecture 13 - Region Processing, Pt. 2

Slides: lec13.pdf

Recommended Reading:


Lecture 14 - Sampling and Interpolation + HDR Imaging

Slides: lec14.pdf

Required Reading: Recommended Reading: Code Samples:
  • Samples and PSFs - Can load .tif images and allows you to resample and reconstruct using different point spread functions.


Lecture 15 - HDR Imaging + Tone Mapping

Slides: lec15.pdf

Required Reading: Recommended Reading:


Lecture 16 - Project Proposals

Quiz 03 Assigned, due Thurs. 10/22, 3:30pm

Programming Assigment 05 Assigned, due Thurs. 10/29, 11:59pm

Final Project Proposals, due Thurs. 10/29, 11:59pm



Lecture 17 - Warping Intro

Slides: lec17.pdf

Required Reading:
  • House, 9.1-9.3, 9.6
  • Hunt, 7.1
Recommended Reading:
  • Szeliski 2.1


Lecture 18 - Perspective Warps

Quiz EC Assigned, due Tues. 11/3, 3:30pm

Slides: lec18.pdf

Required Reading:
  • Szeliski, 3.6.1
  • House, 9.4, 9.5, 9.7
  • Hunt, 7.3


Lecture 19 - Projective and Bilinear

Quiz 04 Assigned, due Tues. 11/10, 3:30pm

Programming Assigment 06 Assigned, due Thurs. 11/12, 11:59pm

Slides: lec19.pdf

Required Reading:
  • House, 10


Lecture 20 - Removing Artifacts with Filtering / Morphing

Slides: lec20a.pdf
Slides: lec20b.pdf

Required Reading:


Lecture 21 - Panoramas

Slides: lec21.pdf

Required Reading:
  • Szeliski, Ch. 9


Lecture 22 - Frequency Domain

Programming Assigment 07 Assigned, due Tues. 11/24, 11:59pm

Quiz 05 Assigned, due Tues. 11/24, 3:30pm

Slides: lec22.pdf

Required Reading:
  • Hunt, Ch. 9
  • House, Ch. 14


Lecture 23 - Frequency Analysis

Slides: lec23.pdf

Required Reading:
  • Hunt, Ch. 9
  • House, Ch. 14
  • Szeliski, 3.4
Recommended Reading:


Lecture 24 - Lossy Image Formats

Slides: lec24.pdf

Required Reading:
  • Hunt, Ch. 10
  • House, Ch. 5.3






Resources

Required Textbooks

Additional Textbooks

Toolkits and Software

Other Related Graphics Courses





Navigation

Schedule
Assignments
Lectures
Resources


Quick Links

Course on Piazza
Handin
Blackboard


Downloads

Course Syllabus






Assignments

Programming Assignment 01

Due: 11:59pm, Tues. 9/8

Instructions: pa01.pdf
Data: images.zip
Sample Makefile: Makefile


Quiz 01

Due: 3:30PM, Thurs. 9/10

Instructions: q01.pdf


Programming Assignment 02

Due: 11:59pm, Tues. 9/15

Instructions: pa02.pdf
Code: albers.zip


Programming Assignment 03

Due: 11:59pm, Tues. 9/29

Instructions: pa03.pdf
Data: greenscreen,zip
Last year's image: dhouse.png


Quiz 02

Due: 3:30PM, Thurs. 10/1

Instructions: q02.pdf


Programming Assignment 04

Due: 11:59PM, Thurs. 10/15

Instructions: pa04.pdf
Data: convolve.zip


Quiz 03

Due: 3:30PM, Thurs. 10/22

Instructions: q03.pdf


Programming Assignment 05

Due: 11:59PM, Thurs. 10/29

Instructions: pa05.pdf
Data 1: smalldesignCenter.hdr
Data 2: Ocean.exr


Final Project and Proposal

Proposals Due: 11:59PM, Thurs. 10/29
Projects Due: Thurs., 12/3

Instructions: final.pdf
Sample Proposal: example_prop1.pdf
Sample Proposal: example_prop2.pdf
Sample Proposal: example_prop3.pdf
Sample Proposal: example_prop4.pdf


Extra Credit Quiz

Due: 3:30PM, Tues. 11/3

Instructions: qEC.pdf


Quiz 04

Due: 3:30PM, Tues. 11/10

Instructions: q04.pdf


Programming Assignment 06

Due: 11:59PM, Thurs. 11/12

Instructions: pa06.pdf
Sample Code: warper.cpp
Matrix classes: vecmat.zip - This code provides utility classes and functions for working with 2d, 3d, 4d, and nd vectors and matrices. Be sure to read vecmatdoc.txt.


Programming Assignment 07

Due: 11:59PM, Tues. 11/24

Instructions: pa07.pdf
Sample image: construction.tif


Quiz 05

Due: 3:30PM, Tues. 11/24

Instructions: q05.pdf