Harvey Mudd College
Computer Science 182a
Project 1
Due Sunday, January 30, by 11:59pm

"If only Minsky had been at Mudd..."

Goals

This assignment simply seeks to familiarize you with the environments in which you may choose to work: OpenCV (a C++ and C based library that is the most commonly used for real-time vision applications) and Matlab (everyone's -- well, at least the computer vision community's -- favorite mathematical and prototyping tool). Another option is the Python Imaging Library, PIL.

Just to keep it interesting, however, the context for getting into these systems will be to solve a crucial piece of the vision problem, , i.e., to take in arbitrary images and indicate where the spam is located in that image. Don't worry -- your program will not have to work perfectly to receive full credit -- but it will have to work at least sometimes on images that it has not "seen before." You'll also implement perhaps the very first widely-used vision algorithms, greenscreening.

Getting started with Matlab

If you choose matlab -- the language of choice for the vast majority of computer vision researchers -- you may want to head to this Matlab link for a quick review of matlab and introducton to its image-processing support, which is quite substantial. Another link that is worth reviewing is Svetlana Lazebnik's Matlab intro, especially sections 5 and 6.

Want to use OpenCV?

You're in luck! The OpenCV library is in MUCH better shape than in the past, thanks to the remarkable company, Willow Garage. The OpenCV wiki has installation instructions and documentation.

I have a starter project for the Mac: linked here.
The video clip spam.mp4 is also here.

This will work if you unzip it on one of the lab macs, double click on the xcodeproj file and then choose build and run. It has a simple color-thresholding system at the moment; mostly, it's meant to get you started. I have not ported this to windows, but I suspect it would not be too bad. In fact, for windows, the easist way to get started is with the VS2010 version, which comes with all of the libraries already built.

Want to use the Python Imaging Library?

This is OK, too! It's installed on the CS machines and not too bad to install on your own. You can grab it by Googling for PIL. The BioCS7 course in the Spring of 2010 used PIL -- you might start with this links (and certainly the online documentation): Introduction via BioCS7's wiki site problem.

The challenge

Deliverables


Possible extentions

The creative-extension part of this assignment can be in many forms -- feel free to check with me if you're not sure.