Announcing ImageJ 2.0.0-rc-2

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Announcing ImageJ 2.0.0-rc-2

ctrueden
Hello ImageJers,

For the past four years, the ImageJ team at LOCI, University of
Wisconsin-Madison, has been working tirelessly to expand the paradigm of
ImageJ beyond its original limitations. Our primary focus has been on
supporting fully n-dimensional scientific images of arbitrary sizes and
data types, while we also endeavored to make ImageJ more interoperable
with other software applications, easier to extend, and more modular.

Today, the ImageJ team is pleased to announce a public release
candidate: ImageJ 2.0.0-rc-2. We tested the first release candidate
internally, but now is the time to engage the community: please test the
second release candidate with your favorite workflows.

For users:
ImageJ 2.0.0 uses the same user interface as ImageJ 1.x. Actually you
can think of it as providing a layer of functionality on top of ImageJ
1.x, as Fiji has done for the past several years. New versions of
ImageJ1 developed by Wayne Rasband will continue to slot in seamlessly
with ImageJ2. This allows you to keep using ImageJ in familiar ways,
while also enabling migration toward more powerful new features as
needed.

For developers:
ImageJ2 has been split to its final structure. It consists of individual
modules with well-defined, separate concerns and relationships. For
example, the imagej-updater module contains only the functionality
needed for managing updates and update sites while the updater’s
graphical user interface is maintained in imagej-ui-swing. During our
work on ImageJ2, we identified a number of useful paradigms and factored
them out into individual, reusable modules. Prominent examples: the easy
and powerful SciJava plugin framework, the scripting framework,
@Parameter annotations to decouple commands from user interfaces, etc.
This makes it possible not only for ImageJ2’s core services, user
interfaces, display widgets, scripting languages, commands, etc to be
plugins using the very same plugin interface, but offers the same power
to other software, such as TrackMate, whose segmentation and tracking
methods are SciJava plugins. To quote one developer: "The SciJava
software stack is way awesome."

What does ImageJ2 provide?
- The ImageJ Updater makes it simple to keep your ImageJ up to date,
  and to add new plugins by enabling additional Update Sites.
- New and enhanced file format support via the SCIFIO library.
- More powerful Script Editor with support for several scripting
  languages as part of core ImageJ.
- Parameterized commands and scripts:
  - Declare typed inputs and outputs with the @Parameter annotation
    and let ImageJ handle the user interaction, avoiding any
    dependence on the AWT user interface (see blog post).
  - Parameter support for scripts and macros (see section below)
  - Reusable in many contexts: KNIME, CellProfiler, OMERO, headless...
  - Plugins appear in the menu automatically without plugins.config
    files, and without having to set the plugins.dir property to a
    single directory containing all the .jar files with special naming
    requirements.
  - Mix and match ImageJ 1.x and ImageJ2 data structures in commands.
- Easy yet powerful plugin concept -- stay tuned for a dedicated blog
  post soon.
- Use ImageJ2's N-dimensional ImgLib2-based data structures (still in
  beta).

As a highlight, here is a quick look at the typed parameters mentioned
above. Again, one of the goals of ImageJ2 is to decouple the processing
from the user interface. To that end, commands, scripts and macros need
not construct dialogs but simply declare what input parameters they
want; it is ImageJ's duty to enquire the parameter values from the user.
Or KNIME’s. Or whatever software application calls the
command/script/macro. As a side effect, writing macros becomes easier.
Example:

        // @File image
        // @String title
        open(image);
        rename(title);

The '@' notation in the first two comment lines instructs ImageJ to
display a dialog asking the user for the image file (i.e., the user
probably wants to choose it using a file chooser) and the title. The
rest is a regular ImageJ 1.x macro.

Please feel free to test the release candidate either by downloading the
.zip file (http://developer.imagej.net/downloads) or by installing or
updating Fiji (http://fiji.sc/). You can expect frequent updates in the
near future as issues are addressed.

Please find more detailed information in our blog post:
http://developer.imagej.net/2014/06/04/imagej-200-release-candidate

Cheers,
The ImageJ2 development team
http://developer.imagej.net/

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html