|
Resources |
Main / Impressionist - CS559 2007Your program must take a color image and produce a new color image that is a "painted" version of the original. The basic idea is that you sample the original image and for each sample you place a "brush stroke" in the destination image. You need to randomize the order of the strokes a little. This is a case where undersampling/aliasing actually creates some nice effects. Here's an example (click on an image to get the bigger versions):
Your program needs to be automatic - the user cannot paint the strokes. Part of this is that we don't want you to spend your time on writing user interfaces (we had students do this in the past - for now, we want you to focus on image processing). One possibility is to have the user specify where the brush strokes go (have them The original version of impressionist painting was interactive. You can see a Java implementation of it here. Paul Haeberli, the inventor of the technique, is a UW alumn! Implementing the interactive version is fun. However, you must also have a "batch mode" version that processes a whole picture without any user intervention. We've seen some pretty creative solutions to this assignment in past years.
Making good paintings from images is a hard problem. There is actually a lot of research out there. Haeberli's original paper is easy (and fun) to read. Here is another old (but good) source of lots of ideas. The version of this project that was assigned at U. Texas has even more ideas. (note: the Texas project has students use the OpenGL graphics library to render the brush strokes. You must render the brush strokes yourself (actually writing the pixels into the image). Graphics classes at other universities give variants of the impressionist painting as an assignment. Often, they ask students to use a graphics library (OpenGL) to draw the brush strokes. We don't recommend you do this: you should draw the brush strokes by actually setting the pixels in the image.
A note on expectations: We don't expect you to do cutting edge research - its a part of a class project for an undergrad graphics class. Many of the techniques that adapt the strokes to the image require a tiny bit of computer vision know-how. (OK - easy version - a high-pass filter can tell you when there's detail in an image, and that you should use more small strokes). What's cool about impressionist painting, however, is how cool you can make it look just doing the basic stuff. Most people find doing it really fun.
|