The program I wrote to test these concepts utilized Java so it can be run on any platform.
| Class | Purpose |
SmartImage |
Keeps an original of the image in storage
Performs blurring, rotation, sharpening, and can implement other filters with a simple convolution algorithm. Computes the gradient and grayscale version of the image |
ActiveContours |
This class is a Canvas which holds the image being worked
on.
It keeps track of the current contour and is in charge of all operations called on the image It can be queried for the current parameters of the image This class is also in charge of painting the contour and image when updated |
Snake |
Manages the current active contour for the image. It computes curvature and gradient values and decides when the contour has reached a local minimum |
Contour |
The is an extended polygon that manages all the points on the contour. It can remove duplicate points, determine distances between points and add and remove points |
HoughTransform |
This class does all the processing involved in locating the
eyes.
When given a set of image points and a radius of circle to look for it can locate any number of possible circles in the image. It can also be queried to obtain the two best circles. |
NeuralNet |
This is the class which implements the standard neural
network.
It can be initialized with any number of input, hidden, and output nodes. When given a set of inputs and the desired outputs...the train function can be repeatedly called to implement the backpropagation algorithm. An estimate of the Sum-Squared error is returned. |
Applet1 |
This is the base applet class it initialized all the components and lays them out on the screen |