Table of Contents

Galatee

Galatee is a Java library for exploring and searching in large image collection where images are annotated.
The library is mainly developped for browsing-searching image collections and annotating images.

Feel free to send me an email at nicolas.james@gmail.com if you are interested by this library.

The Galatee library provides:

Usage example of the library

Example 1

package net.trevize.galatee.main;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;

import net.trevize.galatee.GEvent;
import net.trevize.galatee.GListener;
import net.trevize.galatee.Galatee;
import net.trevize.galatee.GalateeFactory;
import net.trevize.tinker.SystemCommandHandler2;

/**
 * 
 * 
 * @author Nicolas James <nicolas.james@gmail.com> [[http://njames.trevize.net]]
 * DirectoryExplorer.java - Jan 29, 2010
 */

public class DirectoryExplorer {

	private String path;

	public DirectoryExplorer(String path) {
		this.path = path;
		init();
	}

	private void init() {
		System.out.println("*** DirectoryExplorer with Galatee main test ***");
		System.out.println("initializing...");

		int n = 3; //initial number of columns.
		System.out.println("path=[" + path + "]");
		System.out.println("display in " + n + " columns");

		//using the GalateeFactory for getting a Galatee object.
		Galatee g = GalateeFactory.loadDatasetFromDirectory(path, false);

		JFrame f = new JFrame("*** Galatee main test ***");

		JPanel p = new JPanel();
		p.setLayout(new BorderLayout());
		f.getContentPane().add(p);
		p.add(g);

                //implementing a GListener for handling events of the Galatee components.
		GListener listener = new GListener() {

			class SystemCommandThread extends Thread {
				private SystemCommandHandler2 sch2 = new SystemCommandHandler2();
				private String command;

				public SystemCommandThread(String command) {
					this.command = command;
				}

				public void run() {
					String[] commands = new String[1];
					commands[0] = command;
					sch2.exec(commands);
				}
			}

                        //if double click we use ImageMagick "display" command to display the image.
			@Override
			public void itemDoubleClicked(GEvent e) {
				System.out.println("item doubleclicked ["
						+ e.getSelectedItem().getLocalFilepath() + "]");
				SystemCommandThread sct = new SystemCommandThread("display \""
						+ e.getSelectedItem().getLocalFilepath() + "\"");
				sct.start();
			}

			@Override
			public void selectionChanged(GEvent e) {
				System.out.println("changing selection for ["
						+ e.getSelectedItem().getLocalFilepath() + "]");
			}

		};
		g.addGalateeListener(listener);

		g.enableSearchFunctionality();

		System.out.println("initialization ended.");

		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(512, 512);
		f.setLocationRelativeTo(null);
		f.setVisible(true);
	}

	public static void main(String args[]) {
		String path = "/home/nicolas/datasets/PascalVOC/voc2006/voc2006_trainval/VOCdevkit/VOC2006/PNGImages";
		DirectoryExplorer explorer = new DirectoryExplorer(path);
	}

}

Download

The library is designed and programmed on a GNU/Linux platform but it should work also on the MS-Windows platform (if not, drop me a line at nicolas.james@gmail.com about any problem you encounter).
:!: However, some of the embedded features of the library use external applications (e.g. those of the ImageMagick project) on a GNU/Linux system through a special class called SystemCommandHandler2 which is only available for GNU/Linux system, so some functionnalities are only available on GNU/Linux and Unix systems.

License GPL

Galatee use the following libraries:

Galatee, a Java library for exploring image collection in Java.
Copyright © 2009-2010, Nicolas James.
http://njames.trevize.net/wiki/projects:galatee

Galatee is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
Galatee is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this Module; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

Usage examples

Galatee used in the LabelMeBrowser, an application for mining the LabelMe image collection. Galatee in the IIDFFileBrowser, an application for exploring image collection modelized with the IIDF (Image Index and Data File) image collection model.
Galatee with TRECVID2005.

TODO and bugs

Development tracks

Older screenshots