Author Archives: Marcel Austenfeld

Supervised Image Classification with ImageJ and R in Bio7


It’s a while ago that I wrote about supervised image classification combining ImageJ and R in Bio7 (see video here). Later I decided to create a classification Graphical User Interface for Bio7 to make this process easier and implement typical functions for convenience.

However it took some time to finish a first version of this plugin and also to create a first documentation – working on it when I had some time to spare.

Click on the screenshot below to see a video on YouTube:

The plugin uses mainly the Java API of ImageJ to load, transform and filter images for a feature stack and transfer ROI (Region Of Interest) selections of this stack (pixel values) to R to train and classify the data with dedicated R scripts. The GUI itself reuses a powerful ImageJ component to collect selections (ROI Manager) and is embedded in a flexible view container (can be dragged around and detached).

Until now the plugin supports several datatypes, conversions, filters (features) and a GUI to apply a trained R classifier on multiple selected images or directories with the selected features easily.

The simple R scripts which can be executed from the GUI are using by default the randomForest package to train and classify the images. Automatically the classified results are transferred back to ImageJ for visualization and post-processing, e.g.,  object detection or particle analysis.

For a reproducible workflow all selections (using ROI Manager methods) and current GUI settings can be saved, e.g., for classification workflows of different tasks (cell detection, landscape analysis, etc.).

The plugin itself can be downloaded and installed via Github (e.g., using the Eclipse EGit plugin) and then compiled dynamically. Later it will be shipped with the upcoming Bio7 3.2 release.

At all the plugin is concepted in that way that it can be extended easily (extending the GUI  interface using, e.g., the free Eclipse WindowBuilder plugin or simply extending the R scripts).
I tried to hold the source compact, as easy as possible and as complex as necessary.

The installation details and documentation can be found on the dedicated Github page:

If you have some suggestions or ideas for improvements of the plugin let me know.

If you don’t know Bio7 at all:

The plugin can be installed into the OpenSource software Bio7 which can be found here:

Update the ImageJ Plugin for Bio7


In Bio7 it is easy to update the Eclipse ImageJ plugin to the latest version. Open the main menu Help -> Install new Software dialog and add the following update site entry (see screenshot below) to install the update:

It might be recommended to externalize the default ImageJ plugin location (the plugins to extend ImageJ) in the Bio7 preferences (Preferences -> Preferences ImageJ -> Plugins Path) thus that the updates don’t overwrite the default location.

You could for example set the path to a local and remote Github repository to share the plugins with a team.

A change in the preferences will automatically update the ImageJ classpath at runtime (as in the ImageJ menu Help -> Refresh Menus).

ImageJ Plugin Update


A new ImageJ plugin update is available which can be installed into Bio7 3.1 (as an update) or Eclipse. Several new features are available.

Release Notes

  • Updated ImageJ plugin to version 1.52u28
  • Added a new thumbnail action to the context menu of the ‘Navigator’ view to open image and LUT files of a selected directory.
  • LUT’s can now be displayed (preview) in the ‘Thumbnails’ view. The selected LUT will be applied on the current supported ImageJ image (grayscale).
  • The Image info is now displayed as a popup in the ‘Thumbnails’ view (if you hoover over an item).
  • Added a ‘Detach All Images’ action (menu ‘Window’) to transfer all opened tab images to a view (which can be moved and arranged like a separate window)
  • Improved dark theme for AWT on Windows, MacOSX and Linux.
  • Added custom text properties to allow future dark themes or disable dark theme color schemes.
  • Improved the canvas layout for HighDPI displays on Windows.
  • Added new default macro editor templates.
  • Improved the default AWT fonts (using OS fonts).
  • Fixed a SWT memory bug not releasing native children of image tabs.
  • ImageJ Plugin Perspective with opened Thumbnail view (Windows)


To install the plugin the latest Java >=8 is required (only for Eclipse) and an installation of Eclipse or Bio7 3.1 (which is already bundled with OpenJDK 13.0.2).

The plugin can be installed from the Eclipse Marketplace:

As an alternative (and update for Bio7 3.1) open the Help->Install new Software dialog and add the following update site (see screenshot below):

Then install the following features (see screenshot below):

Note for Bio7 3.1:

When installing the update for Bio7 3.1 don’t forget to recalculate the JDT Project Classpath for Java Projects (Context Menu ‘Project Explorer’ -> Fix Project Classpath) for the updated ImageJ plugin location.

Bio7 3.1 Released


A new release of Bio7 is available. This update comes with a plethora of new features, improvements and bugfixes.

R ImageJ Analysis Perspective (MacOSX Catalina, Dark Mode)

For those who don’t know Bio7. The application Bio7 is an integrated development environment for ecological modeling, scientific image analysis and statistical analysis.

It also contains a feature complete development environment for R with an advanced R editor, R developer tools and interfaces to perform scientific image analysis with R and the also embedded ImageJ application.

New and Noteworthy


  • Bio7 3.1 RCP (Rich Client Platform) built upon Eclipse 4.14
  • Bundled with AdoptOpenJDK 13.0.2
  • Bundled with R 3.6.2 (Windows only!)
  • New main toolbar action available to create different projects and files in one shot
  • Added a toolbar submenu action to open the ‘Control’ view
  • ‘Dark Mode’ theme automatically enabled on supported OS (MacOSX only!)
  • ‘2D’ perspective (e.g., for cellular automata simulations) is now hidden by default.
  • Removed the ‘Image’ perspective and the ‘Points Panel’ view and actions
  • Updated libraries (SSH for Windows, etc.)
  • Improved the ‘WorldWind’, ‘2D’ and  ‘3D’ perspective to open and arrange the editor area in a user-friendly programming layout by default (see screenshots below).

WorldWind Perspective with opened Java file (MacOSX Catalina, Dark Mode)

2D Perspective with opened Java file (MacOSX Catalina, Dark Mode)

  • JavaFX has been disabled by default in the preferences for Linux HighDPI displays (e.g., GTK scale 2) because of an open bug when embedded in an SWT canvas.
  • Improved the default Bio7 CSS interface colors


  • New toolbar wizard to create quickly R, R Markdown and Shiny files in a project
  • New R Packages tab available to show and update installed R packages (see screenshot below)

Load Packages Tab (MacOSX Catalina, Dark Mode)

  • Changed the ‘Image-Methods’ view to show only R/ImageJ related actions (bidirectional transfer of image data, selection data, particle and cluster methods, etc.)
  • Added the ‘Geometry Selections’ view to the ‘R ImageJ Analysis’ perspective to transfer ROI selection coordinates as a list or georeferenced data geometries (using package ‘sp’ and Java GDAL)
  • Added the KMeans cluster algorithm to the ‘Cluster Pic’ action in the ‘Image-Methods’ view
  • The ‘R ImageJ Analysis’ perspective is now visible by default
  • Improved the ‘Pixel RM’ and ‘Pixel RM Stack’ action to transfer all ROI selections more efficiently, especially for VirtualStacks of ImageJ
  • Added a new option in the ‘Pixel RM’ and ‘Pixel RM Stack’ action to transfer ROI Manager selections signature names according to a separator char (handy for supervised classification with ImageJ and R)
  • Added a new stack transfer API method (‘imageFeatureStackToR’) to transfer whole stacks in a column layout (for pixel classification)
  • The ‘R-Shell’ view list now scrolls to the last selected variables after a workspace refresh
  • New R editor ‘Quickfixes’ available (warning for an assignment operator in function call, check for null and na in comparison operators)
  • Improved the code completion of the ‘R-Shell’ view and the R editor
  • Improved the plot layout in ImageJ (when using the preference option ‘ImageJ View Display Size’ in the Rserve plot preferences)
  • Added a Shiny timeout to improve the server startup
  • Updated the R ANTLR parser


  • Updated ImageJ to version 1.52t(.51)
  • Added a new ImageJ macro debugger interface
  • Added a new thumbnail action to the context menu of the ‘Navigator’ view to open image and LUT files of a selected directory
  • Added a ‘Detach All Images’ action to transfer all opened tab images to a view (which can be moved and arranged like a separate window)
  • Improved the dark theme for all AWT components
  • Added new default macro editor templates
  • Improved the ImageJ plot windows
  • Improved the detached image view layout
  • Improved the canvas layout for HighDPI displays on Windows
  • Huge amount of other changes since the last release. For all changes, see:


  • Dynamic compilation now supports Java 13 by default
  • Added a new option to dynamically compile a class without a constructor call (without object creation). The object has to be created in the main method (as known from Java).
  • Updated the Java OpenGL (JOGL) 3D interfaces
  • Updated Java WorldWind to the latest version
  • Fixed the OpenGL view visibility on MacOSX (the ‘3D’ and ‘WorldWind’ view stayed visible when switching to another perspective)
  • Added an experimental fullscreen option to open WorldWind and the ‘3D’ view on a secondary monitor (press F3)
  • Updated Java libraries

Download and Installation:


Just download the *.zip distribution file from and unzip it in your preferred location. Bio7 comes bundled with a Java Runtime Environment, R and Rserve distribution and works out of the box.


Download and extract the installation file from
For Linux you have to install R and Rserve (see Rserve installation below!).


Download and extract the installation file from

If you start Bio7 a warning or error can occur because of the changes how Apple treats signatures! To allow Bio7 to start see this instructions for Yosemite, Sierra and Mojave:

First try to open the app with the context menu to allow the execution. If that won’t work try the following:

Yosemite: Open an app from an unidentified developer

Sierra: Open an app from an unidentified developer

Moave and Sierra: How to fix “Application” is damaged and can’t be opened error in macOS Mojave and High Sierra.

In addition for MacOSX you have to install R and Rserve (see below!).

Linux and MacOSX Rserve (compiled for cooperative mode) installation:

To install Rserve open the ‘Native R’ console in the ‘Console’ view and then execute the view menu action “Options -> Install Rserve (coop. mode) for R …” for different R versions (SSL 1.1 version for Linux Ubuntu > 19.10). This will download and install Rserve in your default R library location, see video below (please make sure that your default Linux R library install location has writing permissions!):

How to install Rserve for Linux and MacOSX:

In cooperative mode only one connection at a time is allowed (which we want for this Desktop appl.) and all subsequent connections share the same namespace (default on Windows)!

Bio7 Documentation

For more information about Bio7 please consult the soon updated Bio7 User Guide.

A plethora of Bio7 videotutorials for an introduction can be found on YouTube.

Updated Eclipse ImageJ Plugin Available


I released a new version of the Eclipse ImageJ plugin based on ImageJ 1.52q44.

  • Updated the ImageJ plugin to version 1.52q44
  • Improved the embedded and detached PlotWindows. Now all plot windows are simultaneously resized according to their parent canvas (embedded or detached – animation below)
  • Fixed a bug in the detach menu action (wrong id and panel settings)
  • Removed the ‘*’ tab icon (usually indicating an unsaved editor file) from the detached custom view by deleting the ‘ISaveablePart2’ interface


Eclipse Marketplace:

Screenshot (Linux, Darker Dark Theme)