CMSC 426
Image Processing (Computer Vision)
David Jacobs
Fall 2012



Prof. Jacobs will not have office hours on Wed. Sept. 12.  Instead, he will have office hours Tuesday, Sept. 11 4-5pm.


General Information




Class Time 

Tue, Thu 9:30-10:45


CSI 3120


There is no assigned text, but you will receive course notes, and may want to consult three optional books:

  • A draft of Richard Szeliski's new computer vision book is available online.  This looks really good, and I highly recommend you download a copy while it's still online for free.
  • Introductory Techniques for 3-D Computer Vision by Trucco and Verri. 
  • Computer Vision: A Modern Approach by Forsyth and Ponce

                                Graduate students taking this course may, in particular, want to purchase Forsyth and Ponce.





Teaching Assistant


David Jacobs

Matthew Mauriello


djacobs (at) cs

mattm (at) cs

For problem sets:


AVW 4421

AVW 1112

Office hours

Wed. 10-11, Thurs. 3-4.

Tues 2-3, Wed. 4-5

If you cannot make these office hours, please send email to arrange another time. 



Course Policies






Course work, late policies, and grading

There will be eight problem sets assigned during the semester.  Six of these will include programming assignments to be done in Matlab. Some of these will also include pencil and paper exercises. Two problem sets will be purely pencil and paper exercises. Students will have one or two weeks for each problem set, depending on its size. Homework is due at the start of class.   Problems due on Thursday will be subject to a late penalty of 10% if turned in 24 hours late.  They will receive a 30% penalty if turned in by 3pm the next Monday, and may not be turned in later than that.

There will be two exams. There will be one midterm that will be in class for a complete class period. The final will be during the normal final exam time. Each exam will be cumulative, covering all material learned to that point in the class, with a greater emphasis on material learned since the previous exam. Exams and problem sets will all be based on material discussed in class. Readings are available to help students understand this material, but students will not be expected to master any material not discussed in class.

These will be weighted for the final grade as: Homeworks 40%, midterm a total of 20%, final exam 40%. 

Homework assignments are to be written up neatly and clearly, and programming assignments must be clear and well-documented. Programs should be written in Matlab.  A full paper copy of all of the homework must be turned in.  In addition, we will ask you to email a copy of all code to the TA.

Some homeworks and projects may have a special challenge problem. Points from the challenge problems are extra credit. This means that I do not consider these points until after the final course cutoffs have been set.  Students participating in class discussion or asking good questions will also receive extra credit.



Academic Honesty

All class work is to be done independently. You are allowed to discuss class material, homework problems, and general solution strategies with your classmates. When it comes to formulating/writing/programming solutions you must work alone. If you make use of other sources in coming up with your answers you must cite these sources clearly (papers or books in the literature, friends or classmates, information downloaded from the web, whatever).

It is best to try to solve problems on your own, since problem solving is an important component of the course. But I will not deduct points if you make use of outside help, provided that you cite your sources clearly. Representing other people's work as your own, however, is plagiarism and is in violation of university policies. Instances of academic dishonesty will be dealt with harshly, and usually result in a hearing in front of a student honor council, and a grade of XF.  (Note, this and other course policies are taken from those of Prof. David Mount).


Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall: a) Make a reasonable attempt to inform the instructor of his/her illness prior to the class. b) Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(h) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action. The self-documentation may not be used for the Major Scheduled Grading Events as defined below and it may only be used for only 1 class meeting (or more, if you choose) during the semester. Any student who needs to be excused for a prolonged absence (2 or more consecutive class meetings), or for a Major Scheduled Grading Event, must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. In addition, it must contain the name and phone number of the medical service provider to be used if verification is needed. No diagnostic information will ever be requested. The Major Scheduled Grading Events for this course include: a) Midterm - October 9 during the lecture period b) Final exam, as given in University schedule.

Academic Accomadations

Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester.


Below is a tentative schedule for problem sets and lectures.

  Problem Sets



Sept. 6

Sept. 13

Problem Set 2: K-means clustering and Color Quantization


Problem Set    Test Code     Result for Case 5     forest2

Images for challenge problem leaf1  leaf2  leaf3  leaf4  leaf5  leaf6  See also this paper:


Sept 13.

Sept. 27

Problem Set 3: Gradients, Filtering and Edge Detection (pencil and paper)

Problem Set

Sept. 27

Oct. 4

Practice Midterm (not to be turned in)

Oct 2

Problem Set 4: Grabcut for Interactive Segmentation

Problem Set    Swan Image    Segmented Swan    Dog Image    Segmented Dog   GUI

Oct. 11

Oct. 25

     Problem Set 5: Blob Detection

Problem Set   Smoothed Square 1   2   3   4   5   6

Swan Image   Dog Image   Blobby Dog

Oct. 25

Nov 1

     Problem Set 6: Mosaicing

Problem Set Image 1 Image 2 Matlab code

Nov. 1

Nov. 15

     Problem Set 7: Stereo

Problem Set Image pair for part e: T3bw.jpg T4bw.jpg.  Second image pair for part e: I1L.jpg I1R.jpg

Nov. 15

Nov. 29

     Problem Set 8: Motion and 3D Geometry (pencil and paper)

Problem Set

Nov. 29

Dec. 6

     Review for Final. With answers.      

Dec. 6


Class slides will typically be posted here, usually minutes before class begins. 




  Class Slides




   Class  1 :      Introduction (Aug 30):



   Class  2 :      Images, Histograms, Introduction to Matlab (Sept 4)

Histogram Notes

Accessing Matlab from Glue

CVonline Histogram Equalization Tutorial

Szeliski, 3.1.4

     Class 3:     K-means clustering, color quantization (Sept 6)

K-Means Notes



The Foundations of Color Measurement and Color Perception by Brian Wandell

   Class  4:      Filtering and Correlation  (Sept 11)

Correlation and Convolution Notes

Tutorial from Sussex on Convolution

Szeliski 3.2-3.22

   Class  5:       Fourier Analysis

 (Sept 13) 


Szeliski, 3.4-3.4.1

   Class  6:       Edge Detection - 1D (Sept 18)


Szeliski, 4.2.1 up to scale selection


   Class  7:       Gradients, Edge Detection -2D (Sept 20)

Gradient Notes


Tutorial from Sussex on Gaussian filtering and edge detection


Canny Edge Detector, from CVonline


   Class  8:       Human Perceptual Grouping (Sept 25)


"Laws of organization in perceptual forms" at


   Class  9:       Interactive Segmentation with Graph Cuts,   (Oct 2.)


Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images



(We were a class behind at this point)





   Class 11:  Review for Midterm  (Oct 4)




   Class 12:    Midterm (Oct 9) 




Class 13:  Background Subtraction (Oct 11)

Statistics Notes



   Class 14:    Review of Midterm (Oct 16)







   Class 15:    Texture and Blobs Detection (Oct 18)


David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision, 60, 2 (2004), pp. 91-110.


Class 16:    SIFT Descriptors (Oct 23)

See paper by Lowe on right



   Class 17:    Image Registration and 2D transformations (Oct 25)


Dave Mount's Lecture Notes for Computer Graphics, Chapters 6, 7 and 8 might be helpful.


   Class 18:    RANSAC (Oct 30)


The RANSAC song


   Class 19:     Mosaicing (Nov 1)




   Class 20:    Perspective Projection and Cameras    (Nov 6)

Geometry Notes



   Class 21:    3D Geometry and Stereo (Nov 8)




    Class 22:    Stereo Matching (Nov 13)




   Class 23:    Motion Flow Fields  (Nov 15)




   Class 24:    Optical Flow (Nov 20)




   Class 25:    Nov 27)


The Fundamental Matrix Song


    Class 26:    (Nov 29)




   Class 27:    Detection (Dec 4)


  Slides from Svetlana Lazebnik’s class, March 24 and April 12


   Class 28:   Bag of Words (Dec 6) 


 Slides from Svetlana Lazebnik’s class, March 31


   Class 29:   Conclusions  (Dec 11)






Friday, Dec. 14th, 8:00-10:00