Here at Eckerd College we have a program in development for the marine science students, called ‘DARWIN.’ From darwin.eckerd.edu: “DARWIN is a software system which allows marine scientists to maintain information for the study of various behavioral and ecological patterns of bottlenose dolphins, Tursiops truncatus. The software provides a graphical user interface to access a collection of digital dorsal fin images along with textual information which describes individual animals as well as relevant sighting data. Users may query the system with the name of a specific individual or the entire collection may be sorted and viewed based upon sighting location, sighting date, or damage category. Alternatively, the researcher may query a database of previously identified dolphin dorsal fin images with an image of an unidentified dolphin’s fin. DARWIN responds with a rank ordered list of database fin images that most closely resemble the query image.”
Early my junior year, I was asked if I would like to develop an algorithm for the DARWIN program. The algorithm would be used to remove image glare from user selected areas of the images supplied by the user. Although DARWIN is written in C++, I have started writing the algorithm in Java because I can easily view the results of my algorithm with the use of Swing. I’m not well versed in GTK+; so, after completing the algorithm with satisfactory results, I will sit down to port the program over to C++ with the project advisor, Prof. Kelly Debure.
The initial algorithm that came to mind was the following algorithm:
Note: Multi-line comments have been removed.
public BufferedImage removeGlare(Point x, Point y)
{
final int NORMAL = 5; // Normal matrix size = 5*5
final int SMALL = 3; // Small matrix size = 3*3
int[][][] matrix; // Matrix to hold all pixel values around every single pixel within the selected area