teaching
CMSC 91R
The Computational Image (S2024)
overview | logistics | schedule | assignments | edstem | resourcesTentative Schedule (changes frequently; currently broken)
week | date | topics | readings | sketches | work assigned |
1 | 1/23/2024 | course introduction; intro to p5 | syllabus; Dynamic Pictures | particles; snowflakes tree | DYNAMIC PICTURES |
1/25/2024 | 2D/3D graphics | 2D and 3D drawing; Szeliski 1 | follow3; lerp; geometries; P-2.0; P-2.1.1; P-2-1.2; | ||
2 | 1/30/2024 | images; pixels | Szeliski 2.3; opencv: images (python, javascript) | pointillism; video pixels; capture; P-4.0; P-4.1.1; P-4.2.1; P-4.2.2; P.4.3.1; | DITHERING |
2/01/2024 | color | Szeliski 2.3.2; color; opencv: thresholding (python, javascript) | color wheel; albers; relativity; P-1.0; P-1.1.1; P-1.1.2; P-1.2.1; P-1.2.2 | ||
3 | 2/06/2024 | filtering; convolution | szeliski 3.2 & 3.3; opencv: convolution (python, javascript) & morphology (python, javascript) | blur; edge detection; convolution; low-pass filter; P-2.1.5 | FILTERING |
2/08/2024 | edges; FFT | szeliski 3.4 & 3.5 & 4.2; "An Isotropic 3x3 Image Gradient Operator"; opencv: gradients (python, javascript) & canny (python, javascript) & FFT (python); curves | edges; fft; band-pass filter | ||
4 | 2/13/2024 | 2D geometric transformations; homogeneous coordinates | szeliski ch 2-2.1.1; 3.6; opencv: 2D Transformations (python, javascript); Functional Geometry | rotate | 2D TRANS |
2/15/2024 | histograms; image statistics | szelski 3-3.1.3; opencv: histograms (python, javascript) | histogram | ||
5 | 2/20/2024 | equalization; segmentation | szeliski 3.1.4; "A Threshold Selection Method for Gray-Level Histograms" by Otsu; opencv: equalization (python, javascript) | equalization | OTSU |
2/22/2024 | boids; REVIEW | "Flocks, Herds and Schools: Distributed Behavorial Model" by Reynolds; Nature of Code 5: Complex Systems | flocking; P-2.2.1; P-2.2.3; P-2.2.4; P-2.2.5; P-2.2.6; | ||
6 | 2/27/2024 | edges to lines | szeliski 7.2 & 7.4; opencv: hough (python, javascript) | P-2.3.3; P-2.3.4 | HOUGH |
2/29/2024 | Exam 1 | ||||
7 | 3/05/2024 | homographies | szeliski 8.2; solem ch 3; opencv: image arithmetic (python, javascript); perspective transformations (python and javascript) | scale/translate | STITCH I |
3/07/2024 | least squares | szeliski 4.1 & 8.1; A.2; neural networks | least squares; total least squares | ||
8 | 3/12/2024 | SPRING BREAK | |||
3/14/2024 | |||||
9 | 3/19/2024 | SSD; k-nn | szeliski 5.1; 10.4 opencv: templates (python, javascript); face detection | k-nn; face mesh; haar face detection | STITCH II |
3/21/2024 | feature detection; harris corners; RANSAC; FLANN | szeliski 7-7.1.4; solem ch. 2; opencv: harris corners (python, javascript); opencv: feature matching; opencv: feature matching + homography | fast-corners; RANSAC | ||
10 | 3/26/2024 | segmentation/clustering/k-means | szeliski 5.2 & 7.5; solem ch. 6; opencv: kmeans (python), watershed (python, javascript) | 2D K-means; image quantization | BG ESTIMATION |
3/28/2024 | gaussian mixture models (EM) | BG-subtraction (javascript) | 1D GMM; 2D GMM | ||
11 | 4/02/2024 | image formation | szelski ch 2.1.3-2.2; solem 4.1 & 4.2 | cardboard pinhole camera (eclipse!) | 3D VIEWER |
4/04/2024 | |||||
12 | 4/09/2024 | camera calibration/AR | szeliski 11-11.2.3; opencv: camera calibration; solem ch. 5; pose estimation; | calibration; AR | PROJECT/AR |
4/11/2024 | Exam 2 | ||||
13 | 4/16/2024 | shaders | shader tutorial; book of shaders: getting started & algorithmic drawing | textures; image effects | WEBGL |
4/18/2024 | webgl/3D | web GL; framebuffers; custom geometry | 3D | ||
14 | 4/23/2024 | projection mapping | p5.projection; p5.mapper | PROJECTION | |
4/25/2024 | AR; three.js | a-frame; AR.js; Three.js+AR.js | waterfall [src] | ||
15 | 4/30/2024 | PROJECT | |||
5/02/2024 | course survey | ||||
16 | 5/10/2024 | project presentations (7PM in SCI 204) |