CMSC 25040/35040
Introduction to Computer Vision

General information

Instructor:Pedro F. Felzenszwalb
Email:pff (at)
Office:Ryerson 162C
Lecture:MWF 11:30-12:20 Ryerson 276


This course is an introduction to some of the fundamental concepts in computer vision. We will cover selected topics in low-level image analysis, perceptual grouping, 3D reconstruction, motion estimation and object recognition. Our approach will be to focus on mathematical models and efficient algorithms.

There is no required textbook for the course. This webpage will have handouts covering the material from class.


01. Slides from the first lecture
Computer vision issues (Chapter 1 of Ballard & Brown)
Edge detection
Comparing Images Using the Hausdorff Distance (Huttenlocher, Klanderman, Rucklidge)
Integral Image (from
Graph-Based Energy Minimization Methods (Veksler)
Laws of organization in perceptual forms (Wertheimer)
An Active Testing Model for Tracking Roads in Satellite Images (Geman, Jedynak)
Random Sample Consensus (Fischler, Bolles)
10. Determining Optical Flow (Horn, Schunck)
11. The Robust Estimation of Multiple Motions (Black, Anandan)
12. Object Recognition with Pictorial Structures
13. Distance Transforms of Sampled Functions (Felzenszwalb, Huttenlocher)
14. Object Recognition by Combining Appearance and Geometry (Crandall, Felzenszwalb, Huttenlocher)
15. Representation and Detection of Deformable Shapes (Felzenszwalb)
16. Mean Shift: A Robust Approach Toward Feature Space Analysis (Comaniciu, Meer)
17. Robust Real-time Object Detection (Viola, Jones)
18. Geometric Context from a Single Image (Hoiem, Efros, Hebert)
19. Recognition by Linear Combinations of Models (Ullman, Basri)


Edge detection
Due: October 12th.
Test images:
zip archive.

Due: October 21st.
Test images:
zip archive.

Due: November 4th.
Test images:
zip archive.


xv is a good image viewer that handles pbm/pgm/ppm files. It runs under Unix with X11.
wv is a viewer for pbm/pgm/ppm files that runs under Windows.
ImageMagick is a nice set of image manipulation utilities. It also includes a viewer.

Here is a small library of C++ functions that you can use to load, save and manipulate images.
You can download the library as a
zip archive.
(look at readme and 'test.cpp' for a small example program)


The Computer Vision Homepage
Computer Vision Bibliography
IEEE Transactions on Pattern Analysis and Machine Intelligence
International Journal of Computer Vision