ECE 847 Digital Image Processing
Fall 2011

This course introduces students to the basic concepts, issues, and algorithms in digital image processing and computer vision. Topics include image formation, projective geometry, convolution, Fourier analysis and other transforms, pixel-based processing, segmentation, texture, detection, stereo, and motion. The goal is to equip students with the skills and tools needed to manipulate images, along with an appreciation for the difficulty of the problems. Students will implement several standard algorithms, evaluate the strengths and weakness of various approaches, and explore a topic of their own choosing in a course project.



Week Topic Assignment
1 Pixel-based processing HW1:  Warm-up, due 9/2
2 Pixel-based processing Quiz #1, 9/9
3 Filters and edge detection HW2:  Pixels and regions, due 9/16
4 Filters and edge detection Quiz #2, 9/23
5 Segmentation HW3: Edge detection, due 9/30
6 Segmentation Quiz #3, 10/7
7 Stereo HW4: Segmentation, due 10/14
8 Stereo Quiz #4, 10/21
9 Motion HW5: Stereo matching, due 10/28
10 Motion Quiz #5, 11/4
11 Image formation HW6:  Lucas-Kanade tracking, due 11/11
12 Projective geometry Quiz #6, 11/18
13 Projective geometry
14 Color Quiz #7, 12/9
15 Color projects due

Readings and Resources

Readings to complement the lectures:

Computer vision in the news:

Vision in biological systems:

Computer vision companies:


Additional computer vision resources

Resources for current students (restricted access, not open to the public)


In the assignments, you will implement several fundamental algorithms in C/C++, documenting your findings is an accompanying report for each assignment.  C/C++ is chosen for its fundamental importance, ubiquity, and efficiency (which is crucial to image processing and computer vision).   For your convenience, you are encouraged to use the latest version of the Blepo computer vision library.

Your code must compile under Visual Studio 2010 or VC++ 6.0.  You should develop your code in Debug mode but test in Release mode before submitting.  The grader will test in Release mode.  To make grading easier, your code should do one of the following:

To turn in your assignment, send an email to (and cc the instructor and grader) with the subject line "ECE847-1,#n" (without quotes but with the # sign), where 'n' is the assignment number.  You must send this email from your Clemson account, because the assign server is not smart enough to know who you are if you use another account.  E.g., do not use  If you are using Gmail, it is not sufficient to change the 'send mail as:' to  Instead, from 'Mail Settings' you need to go to 'Accounts and Import', 'Send mail as:', 'Send mail from another address', type in your, select 'Send through SMTP servers', type '' along with your userid and password, select 'Secured connection using SSL', then 'Add account'.

To your email, attach a zip file containing your report (in any standard format such as .pdf or .doc; but not .docx), and all the files needed to compile your project (such as .h, .c, .cpp, .rc, .vcproj, .sln, .dsp, .dsw).  Also, if you have built an MFC Windows application (as opposed to a console-based application), check in the res directory that contains .ico and .rc2 files.  But do NOT check in all the other files that Visual Studio creates automatically, such as .aps, .clw, .ncb, .opt, .plg, .suo, or the Debug or Release directories.  When in doubt, check out your code to a new temporary directory and verify that it compiles and runs.   

You may leave the body of the email blank.  Be sure that your zip file is actually attached to the email rather than being automatically included in the body of the email (Eudora, for example, has been known include files inline, but this behavior can be turned off).  We cannot grade what we do not receive. 

(Obsolete instructions that were applicable when the Clemson server used to block .zip attachments:  Also, be sure to change the extension of your zip file (e.g., change .zip to _zip) so that the server does not block the attachment!!!  Also be sure that you're not hiding extensions for known types; in Windows explorer, uncheck the box "Tools.Folder Options.View.Hide extensions for known file types".) 

All assignments are due at 11:59pm on the due date shown.  An 8-hour grace period is extended, so that no points will be deducted for anything submitted before 8:00am the next morning.

Reports should be professionally written, with a title, a description of the problem, a description of the algorithm, a detailed discussion of your particular implementation, results, and analysis.  An example report.  Similarly, code should be professionally and cleanly written, making use of standard programming practices.


Grading standard:  Detailed grading breakdown is available in the grading chart.



In your final project, you will investigate some area of image processing or computer vision in more detail. Typically this will involve formulating a problem, reading the literature, proposing a solution, implementing the solution (using the programming language/environment of your choice), evaluating the results, and communicating your findings. In the case of a survey project, the quality and depth of the literature review should be increased significantly to compensate for the lack of implementation.

Project deadlines:

To turn in your report, please send me a single email per group (do not email the assign server) with two attachments:

Both files should have the same name, which should correspond somehow to your topic. Use underscores instead of spaces. Do not send PPTX files. Example: face_detection.pdf and face_detection.ppt.  You do *not* need to send me your code (although you may if you like).

Projects from previous years


Instructor: Stan Birchfield, 209 Riggs Hall, 656-5912, email: stb at clemson
Office hours:  anytime
Grader: Sean Ficht,  sficht
Lectures: 12:20 - 1:10 MWF, 223 Riggs Hall