CMSC 426
Image Processing (Computer Vision)
David Jacobs
Spring 2010




Review for final will be Monday, May 17 at 6:30 pm in 4424 AVW.  Review document is below.


Office hours on April 21 will be 2:30-3:30, instead of 3-4.


Note, PS 6 is extended to April 27.  I sent email to the class with some tips at 12:53pm on Saturday.  If you didn't get this, send me email.


Practice Midterm is available below


Midterm review will be at 5pm, Tuesday, March 23 in AV Williams 2120


Check out Richard Szeliski's free online Computer Vision text.


Problem Set 1 will not be due until Thursday, Feb. 11, due to the snow closing.



General Information




Class Time 

Tue, Thu 3:30-4:45


CSI 1121


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

Arijit Biswas


djacobs (at) cs


AVW 4421

AVW 1112

Office hours

Tue 10:00-11:00, Wed. 3:00-4:00 

Mon 12:30-1:30, Wed. 12:30-1:30

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 seven problem sets assigned during the semester.  Six of these will include programming assignments to be done in Java. Some of these will also include pencil and paper exercises. One problem set 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. Problems due on Tuesday will be subject to a late penalty of 10% if turned in 24 hours late, a penalty of 20% if turned in 48 hours late, and may not be turned in later than that.

There will be three exams. The first quiz will be in class for half an hour. The midterm 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.

There is going to be a terrific computer vision workshop at the University of Maryland on Monday, Feb. 22. This will feature some of the world’s best researchers. Students are urged to attend as many talks as possible, but will be required to attend at least one talk, and hand in a one paragraph summary of that talk. Students who are unable to attend due to scheduling constraints may see me for an alternate assignment.

These will be weighted for the final grade as: Homeworks and talk summary 30%, quiz and midterm a total of 30%, 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 Java.  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 site 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).


Students claiming an excused absence must apply in writing and furnish documentary support (such as from a health care professional who treated the student) for any assertion that the absence qualifies as an excused absence. The support should explicitly indicate the dates or times the student was incapacitated due to illness. Self-documentation of illness is not itself sufficient support to excuse the absence. An instructor is not under obligation to offer a substitute assignment or to give a student a make-up assessment unless the failure to perform was due to an excused absence.

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



Feb 2

Feb 11

Problem Set 2: Gradients, filtering (paper and pencil only).


Feb 23

Problem Set 3: Intelligent Scissors  Starter Code Updated iscissors code

Feb 23

March 9

Turn in a one paragraph summary of one talk from the Computer Vision Workshop on Feb. 22


Feb 23

Problem Set 4: Texture synthesis + paper and pencil exercise

Brick Test Image

March 9

March 23

   Practice Midterm (not to be turned in). 

 March 23


    Problem Set 5: Blob detection Code Dog Image My result

 April 1

April 8

    Problem Set 6: Mosaicing Code Images

 April 8

April 27

    Problem Set 7: Stereo and 3D interpolation + paper and pencil exercises.

Problem Set  Image pair for part e: T3bw.jpg T4bw.jpg.  Second image pair for part e: I1L.jpg I1R.jpg.  Image pair for part f: 28-09.jpg 28-10.jpg.

 April 27

May 11

Review for Final:     Here



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




  Class Slides

   Class  1 :      Introduction (Jan 26):



   Class  2 :      Images, Histograms, Java and Images (Jan 28)

CVonline Histogram Equalization Tutorial


   Class  3 :      Filtering and Correlation  (Feb 2)

Correlation and Convolution Notes


Tutorial from Sussex on Convolution


   Class  4:       Sampling and Multiscale

Fourier Analysis

 (Feb 4) 









   Class  5:       Edge Detection - 1D (Feb 16)



   Class  6:       Gradients, Edge Detection -2D (Feb 18)

Gradient Notes


Tutorial from Sussex on Gaussian filtering and edge detection


Canny Edge Detector, from CVonline


Workshop on Computer Vision. Students must attend at least one talk. (Feb 22, AV Williams)



   Class  7 :     Quiz.   Intelligent Scissors (Feb 23) 

Intelligent Scissors for Image Composition, by Eric Mortensen and William Barrett, SIGGRAPH '95.m


   Class  8:       Human Perceptual Grouping (Feb 25)

Reading "Laws of organization in perceptual forms" at


   Class  9:       K-means clustering, color quantization (March 2)

K-Means Notes


The Foundations of Color Measurement and Color Perception by Brian Wandell


   Class  10: Texture, multi-scale filtering (March 4)





   Class 11: Texture synthesis and Markov models (March 9)

Texture Synthesis by Non-parametric Sampling,” by Efros and Leung. Web page contains links to the paper and pseudocode


   Class 12: Background Subtraction (March 11)

Statistics Notes


Class 13: Blob Detection (March 23)

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


   Class 14: Midterm (March 25) 





   Class 15: Review of Midterm (March 30)



Class 16: SIFT DESCRIPTORS (April 1)



   Class 17: Image Registration and 2D transformations (April 6)

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


   Class 18: RANSAC (April 8)



   Class 19:  Mosaicing (April 13)



   Class 20: Optical Flow (April 15)



   Class 21: Perspective Projection and Cameras (April 20)

Geometry Notes


   Class 22: 3D Geometry and Stereo (April 22)

 The stereo algorithm for Problem Set 7 is described in: "A Maximum Likelihood Stereo Algorithm," by I. Cox et al. 


   Class 23: Stereo Matching (April 27)



   Class 24:  Light Fields and 3D Interpolation (April 29)



   Class Motion Flow Fields (May 4)>(May 4)



Lambertian Reflectance and Photometric Stereo (May 6)>(May 6)



 &nClass 27:  Bag of Words Classification; Conclusions (May 11)y 11)




   FINAL   Wed. May 19 (10:30-12:30)