Keith J. O'Hara

teaching

CMSC 91R

The Computational Image (S2024)

overview | logistics | schedule | assignments | edstem | resources

Tentative 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)