Projects: "Explorations in Image Processing" in CSE 190 D (Spring 2013)

Purposes:

(1) Learn selected concepts and skills of image processing through a personal or team project. (2) Pursue a personal/team interest and create a program or artifact to present to others. (3) Practice formulating and executing a creative project involving image processing technology. (4) Gain additional fluency with Python.
 

Teams:

You have a choice to work individually or in a team of 2 or 3. A team is expected to produce a project that is somewhat more extensive or sophisticated than the project of a single person. However, the measurement of such a project is subjective; a team of 2 can be expected to produce a project that is between 1.5 and 2.5 times as extensive as that by an individual. A team of 3 can be expected to produce a project that is between 2 and 4 times as extensive as that by an individual.

Working with a partner (or with two teammates) will give you an opportunity to try "pair programming" as well as regularly discuss module interfaces and overall strategy. If you later look for a corporate internship or job as a developer, it is often valuable to be able to describe your team-oriented programming experiences. This project offers you an opportunity to get such experience.

 

Topics:

Please suggest a topic for your project and discuss it with the instructor. The main criteria are the following
  • (1) it should involve the development or application of an image processing method.
  • (2) it should consist of a Python program that you design and implement.
  • (3) you should be able to demonstrate your project in class.
  • (4) by the time it is done, you should understand the techniques you are presenting and be able to explain them to the class.
  • (5) there should be a progression for your topic, where a simple version can be achieved early, and more ambitious goals targeted later.
Some teams may wish to develop interactive tools for transforming images, inpainting, warping, color correction according to an artistic theory, or adaptive compression. Other teams may wish to implement educational games that either teach image-processing or mathematical concepts or that employ image processing in the mechanics of the game. (Such concepts include the Fourier transform, discrete cosine transform, and topics in probability and statistics, geometric transformation, logic, calculus, abstract algebra, linear algebra, color theory, information representation, image enhancement, etc.) Another type of project is to build a trainable classifier that takes image data and allows a user to interactively control training. Other ideas are welcome, too.

Please email the instructor, with a cc to the TA, by Tuesday evening, April 23 at 9:00 PM with the following information: (a) whether or not you are open to working in a team, and if so, whether you have a teammate or teammates already in mind or agreed to; (b) topic idea; (c) preferred platform, if you know yet.

 

Platforms and Languages

Although your project should involve programming in Python, you are free to use almost any Python version and libraries that you have available. You may also employ other languages and systems provided Python is used for a substantial part of the project. For example, you may use tools such as Mathematica, MATLAB, and languages such as Java, C, C++, and Processing in your project, as long as your project performs something important in Python. Here is a list of suggested platforms.
  1. Python 2.7 + Idle + OpenCV 2.4 + NumPy.
  2. Python 3.4 (coding your own image processing methods), and/or interfacing with other languages and systems through files, and/or operating-system processes.
  3. PixelMath and Python

Planning Form:

Project plan forms are available here. These should be submitted either as hardcopy in class on Wednesday, May 1, or electronically through Catalyst CollectIt by 11:00 PM on that date.
 

Additional Information:

The requirements for project reports are here. The reports are due Thursday night, June 6 at 11:45 PM.
 

Last updated:

June 3, at 12:20 PM.