Introduction
Adding a Module to the Configuration
Deleting a Module
Moving a Module
Adding a Duplicate Module
Defining the Flow of Images
Defining the Flow of Mouse Click Events
The Popup Menu
Saving a Configuration
Loading a Configuration
Starting and Stopping the Configuration
The 'Active Module Controls' tab.

The GUI is made up of three areas. In the Modules area all of the available modules (defined in DefaultModuleList.xml, see ModuleList.dtd for a definition of the XML language used here) are listed along with their type. Source is used for all modules which strictly produce images. Filter is used for any module that processes images, note that the word "filter" is used here in the sense that it is commonly used in image processing programs like PhotoShop. Sink is used for modules which strictly consume images (e.g. display or save to a file). The 'Module Configuration' panel is used to create and modify configurations of the modules. The 'Active Module Controls' tab is used to display user controls provided for any module currently running. The image below shows the window in its initial state, with the Modules and Module Configuration areas displayed.
Initial Window State

To add a module to the 'Module Configuration' area, select the module in the Modules area and drag it into the 'Module Configuration' area. The module will appear where the mouse is released.
New Module Added

Once the module has been placed in the 'Module Configuration' area it can be moved simply by dragging it to a new location within that area.
Before the modules have been moved:
Before the modules are moved

After they have been moved:
After the modules are moved

If a module is added that is already in the current configuration, then a new copy of that module is automatically created. The new module is given a new label using the original label plus an index number. In the image below an additional Display module has been added.
Duplicate module added

The flow of images through the modules can be defined by adding links between them. To add a link, select the source then the receiver. A black line will be drawn between the selected modules to indicate that a link has been made. The image below shows a link created between a Source and a Sink module.
Link created
Links can be removed by selecting the source and receiver again.

Another type of link is associated with mouse click events. Certain modules, like Localized Histogram Equalization, require the user to select points in the image. A Module like Display that displays images in a frame can be used as a source of mouse events that another module may be interested in. Mouse event links are created and removed in the same manner as image flow link, except that the Ctrl button must be pressed when the module is selected. These links are colored red to make them distinct from image flow links. For some reason this does not work on Windows in the same way that it works on Linux. Since most of the available modules require Linux this interaction is currently set up to work under Linux.

A popup menu is provided which allows the user to start and stop or save and load configurations.
Popup menu

Selecting save from this popup menu will allow the user to save the configuration to a file. The configuration is saved in an XML language defined in ModuleConfiguration.dtd. In this case the resulting file looks like this: test.xml.
Saving the configuration

To delete a module, select it:
Module selected

And hit the Delete key. All of the module's links are automatically removed.
Module selected

To load an existing configuration, select 'Load Config' on the popup menu and select the file to load.
Loading a configuration

Screenshot after the configuration is loaded:
Configuration loaded

To get a configuration to run, select 'Start Modules' on the popup menu. The following image shows the example configuration running on a set of sample images. To stop a configuration, select 'Stop Modules' on the popup menu.
Modules running

When a configuration is running any user controls provided for the modules in the configuration will be displayed on the 'Active Module Controls' tab. Here a simple control panel is provided for the 'Color Histogram Equalization' module. User controls