| original | impressionist (click for full size) |
![]() |
|
![]() |
![]() |
The control window allows you to choose among brushes: point (square),
line, circle, scattered points lines or circles, and gradient curves.
It also allows controlling of brush parameters like size and spacing
between strokes, width and angle (for lines), as well as the alpha value
of the stroke, and the size of a scatter brush. Line direction can be
controlled by the just a slider, the direction of the right mouse drag,
the image gradient, or a direction toward the center (or other point
specified with the right mouse button).
The color of a brush stroke is determined by
the color in the original image at the point. Either the original image
or the new image can be drawn on, with the location on the original shown
by a small circle, and an optional previewed brush in the new image.
Images can also be automatically painted in one of two ways. 'Ordered'
simply steps through the images at spaces specified by brush spacing, and
places a stroke at each point. 'Random' will randomly draw strokes (the
number controlled by the Step Size slider), then examine the image looking
for holes that are lower than the minimum alpha. It will then choose
random points from these areas to place more brushes, and will continue
until all the points are sufficently filled. During these drawing
processes, brush size and alpha can also be randomly varied.
An image can be autopainted in one style, regions can be erased and then
filled in with another style. Or, one style might be used with a low
minimum alpha, and then another style on top to refine detail. This
method allows for a user to quickly create interesting images in various
styles.
In addition to being a flexible method for creating images with varying
style, this idea also allows a simple extension to video. If we use the
autopaint to redraw each frame randomly, the video will not look coherent,
as strokes will either randomly shuffle around the image, or the strokes
will stay fixed as colors move beneath them. We would like to have
strokes stay attached to features in the image. By selecting multiple
images at load time, the program will allow the creation of video
impressions. It does simple region tracking to create a vector field from
one image to the next, and then translates strokes according to the vector
field. When moving of strokes (or inability to track) leaves holes in the
image, they are filled in by the autopainting. In practice, this doesn't
give great results, but its a start.



Downloading
If you'd like to try this program, its available
here,
in a jar format (51KB). No warrantee
expressed or implied; play with it for fun, but don't rely on it for
something important.
To run this software, simply run 'java -jar Impressionist.jar' and you're
off! Or you can test it out here, in an applet.
Comments are welcome; send them to harlan@cs.washington.edu.