Image Processing
Description
This was the first project in the computer graphics course at the UW Madison.
The goal was to create three programs. The first was called blur and blured
and image using a specified radius and convolution kernel. The second was
called resize and resized an image to a specified width and hight using a
specified convolution kernel. The third was called painting and converted
the input image into an expressionist painting using a set of template brushes.
In each of the first two applications it was also possible to specify how
the boundry of the picture should be handled.
As of this point in time, only the .tga format is supported by these
programs.
Challenges
The biggest challenge of this assignment was in understanding exactly how the
input stream was to be sampled (i.e. how wide should the filter be). This was
very prevailent in the resize application.
Results
The following are images produced by the blur application using a radius of 10
pixels and using renormalization to handle the boundries.
|
|
|
|
Original |
Box filter |
Tent filter |
BSpline filter |
The following are images produced by the resize application. The original image
was resized to 300 by 300 pixels.
|
|
|
|
Original |
Box filter |
Tent filter |
BSpline filter |
The following is the image produced using the painting application. the original
is on the left while the output is on the right.
|
|
Original |
Painting |
Source
The source code for this project is release under the GPL. Installation instructions
are included with the code as well as a copy of the GPL license.
|