Think of this assignment as a warmup excercise. You are to write a standalone (command line executable) program in C++ using OpenCV that tracks the Frigate bird in the following video.

To be more precise, your code will take the name of the video (yes you are only using one video, still supply the name as a command line argument) and then displays each frame with a bounding box drawn around the frigatebird. The display will use a single window and advance to the next frame after a specified number of milliseconds; perhaps 100.


Tracking a moving object in video can be a difficult computer vision task. However, in this particular video, not so much. There are a variety of relatively simple solutions and you should not seek generality for generalities sake in this first assignment. There will be time later to think more deeply about robust tracking. Also, there is a larger lesson here about needless complexity. Often in applied taks the constraints are sufficient to allow for simple solutions, and you should always consider and try these simpler solutions for two reasons. First, if they work, you have a simple solution. Two, if they don't, their failures will guide you in seeking more robust and often more complex solutions.

Starting Point

To further speed you along your way in this assignment, here is the first class example using OpenCV.

Note the file is large because it includes a copy of the frigatebird movie.

Do not be surprised if much of your time on this first assignment is spent in frastructure work, e.g. getting up to speed on compiling and running code that relies on OpenCV, becomin familiar with OpenCV conventions, etc.

Paired Programming

Collaboration is a good thing. In that spirit, you will pick a partner for this project and work together. That means each team will submit a single solution to this assignment.


On this first assignment grading will be done based upon meeting with the instructor. Each PA01 team will pick a time (signup coming later) and meet with the instructor and present and discuss their solution. We will hold these meetings after class Monday January 29 or on Tuesday morning January 30.


Instructions for compiling and running the ex00movie example on the CS Department Unix machines is now available.