The WrapImaJ Image Processing API

WrapImaJ purposes to be a multi-platform wrapper for different Image Processing systems using the Java programming language. The source code and documentation are available here form SourceForge. The purpose of WrapImaJ is not to combine an exhaustive collection of all functionalities of different imaging system, but to offer a simple, concise Application Programming Interface (API) allowing to develop imaging software, the source code of which is independent from the underlying imaging system on which it relies. In it's current form, it only wraps basic functionalities of ImageJ. The developers of WrapImaJ intend the library to support compatibilty with the main imaging systems available in the Java language and broadly used in the field of life sciences. The WrapImaJ user's guide, avilable in PDF is an introductory guide intended to hep developpers use WrapImaJ, and also possibly contribute to the development of WrapImaJ or Open Source software built onWrapImaJ.

The JavaDoc

Take a look at the WrapImaJ API documentation.

Outline of the WrapImaJUser's Guide

The WrapImaJUser's Guide, available as PDF, which contains examples and precise UML diagrams of the API and its current implementation and Wrappers, is organized as follows:
  • The core of the Application Programming Interface is presented. It consist of the public interface which common to all the wrappers implemented in WrapImaJ.
  • We present the ImageJ wrapper, which implements, using ImageJ, classes implementing all the interfaces which appear in the core API.
  • In addition to these public interfaces, the only methods in the wrapper which are public are the constructors (or possibly factory-like methods) which allow to create instances. Once instances are created, only the methods of the public interface in the core API should be used. This mainly makes future program implementations independent from the particular wrapper used.
  • At last, we present the first module developed using the core API, as a proof of concept. This module deals with connected components in binary images, their labelling and filtering.

Current limitations

At the time this guide is written, only an ImageJ wrapper is written. The bulk of the development targets static 3D images, which are quickly to be converted to 8 bits per pixels images to work on histograms. Even though the ImageJ wrapper has been successfully tested, the project is still experimental and the core API is liable to change. Though the changes will focus on extension, for the purpose of conciseness, we cannot yet be sure that it will be completely backward compatible. The current functionalities, though, should still be provided with a similar syntax in the future.