ICY: The open source community software for bio-imaging
Over the past decades the image analysis community has put substantial efforts into developing algorithms for various applications, yet their visibility often remained clustered to a handful of people,
ICY provides an integrated platform that aims at bridging the gap between developers and users, by combining: a) an open-source image analysis software, offering a powerful and flexible environment for developers such as applied mathematicians to write algorithms fast and efficiently; b) a common set of tools to view and manipulate data, and a set of plugins to perform specific quantification or analysis on images; c) a community-based website centralizing all plugins and resources to facilitate their management and maximize their visibility towards users.
ICY in details
ICY's core: the gold standard for today's image processing needs
Images are numbers.
ICY's core has been designed specifically to handle large image data in 2 or 3 dimensions, with time-lapse sequences and an unlimited number of channels, fitting today's bio-imaging standards. While current imaging systems generally store images either in 8- or 16-bit precision, ICY natively supports many more data formats (8-bit byte, 16-bit short, 32-bit integer, 32-bit float, 64-bit long, 64-bit double), in order to allow mathematical computations on images and to be ready for the next generation of imaging setups.ICY provides a rich API to perform pixel transfer, conversions and assignments in the most efficient way, by minimizing the number of intermediate steps between the raw image data and the target structure. The core data structure describes both temporal and depth information, and allows to reference only a portion of images in time or depth in a sequence. This enables to load several stacks of different depth even with missing frames.
Why re-invent the wheel? We did not !
3d rendering with integrated VTK libraries
ICY's plugin architecture: central, rock-solid.
Plugins first.
ICY is designed to benefit as much as possible from community development through a highly plugin-oriented framework. Plugins can be written and integrated to the software almost everywhere, be this a novel image analysis tool, a new import functionality for your own file format... you can even write your own viewer to look at images the way you want ! The full list of available plugins is accessible here and can be browsed by tag here. Each plugin listed on the website is also visible within ICY with its description and key features, and can be downloaded and installed directly from the application. Once installed, the plugin appears directly on the ribbon bar, ready-to-use and accessible in a single click.
ICY's ribbon interface. Access plugins in a single click.
No bugs allowed.
ICY embarks a robust bug-catching system with one-click bug report option. When a plugin crashes, ICY does not. Instead, an error window pops up and details the reasons of the crash. The user may then choose to ignore the error, or submit it directly to the plugin developer for diagnostic and bug-fixing. In both cases, the user may continue to use ICY, without losing all the precious data worth a week's work.Your data. Your view. Your way.
Example of RGBA look up table
Open once. View differently.
When observing an image dataset, one visualization window is often not enough: multiple views of different areas or different times can be necessary to find and track specific events or details. To avoid switching between viewing-modes all the time, ICY lets the user open as many viewers of the dataset as needed, without duplicating data. For instance, it becomes possible to have one viewer on a full sequence, another viewer with 3D volume rendering of a particular area at a different time point, a third viewer with a specific look-up table, and a last viewer displaying a selection of contextual layers. By not duplicating data, ICY runs efficiently, and if ever the data changes via one of the viewers, all the other viewers are instantly updated and kept synchronized.
View data in different viewers without duplication. Each view is either 2D or 3D, with adjustable LUT or layer selection. Any change in data or layer in one viewer is synchronized with the others.
Touch your data.
Example of an interactive painter
to perform angle measurements.
Images. In context.
ICY uses an efficient architecture to save and share data via XML, while preserving the original sequence intact. Any time a dataset is loaded, a XML file is automatically created (or reloaded) and bundled with it. This XML file may store various information such as Regions Of Interest (ROI), overlays or any other contextual data created by the user or directly by plugins. This contextual data becomes available to and shared by all other components and plugins of ICY, which greatly facilitates inter-plugin communication within an image processing workflow. This efficient mechanism also allows the user to reload the image together with all its bundled data, improving communication and team work. This feature is called "XML persistency", as it keeps data transparently saved and available at all times.Workspaces
Organize space. Free time.
Day-to-day use of image analysis softwares can be cumbersome. From a user's point-of-view, three questions often arise:Community-powered.
Any user can create workspaces. Workspaces may remain private, but can also be published online and shared via ICY's website. Workspace maintainers then have the responsibility to keep the set of plugins up-to-date, by testing and adding new plugins, and removing old ones. Workspaces thereby benefit the entire community: users spend less time finding plugins, and developers increase a plugin's visibility by adding them into a workspace.Online plugin repository.
All in one place.
Sample of the online
plugin managment webpage
The central plugin repository hosted here provides the following features:
Private plugin repositories
While this website is a central repositories for open-source plugins, ICY also supports private repositories protected by password, whereby teams can share their own plugins using the license of their choice, and take benefit of automatic updates, without being publicly visible.Developing with ICY.
Write plugins. Join the loop.
ICY supports open-source development
ICY is open-source and released under the GPL license agreement. The current and future developments of ICY are therefore transparent: a forum is dedicated to the development of the kernel, and plugin developers are welcome to participate in this forum too. Moreover, the development team itself follows the good practices of the open-source community to avoid taking private decisions about the design: kernel developers interact through the forum as if they were in different geographical locations, and discuss directly in the forum.News
Automatic bug report
We want ICY to be stable. If a plugin crashes, an automatic bug report log is sent to the author, and you can continue to work as the main application still runs. If any part of ICY crashes, a general bug report allows one to instantly publish, in one click and from the application, a full bug report. details
Plugin communication
All plugin can communicate together, they just need to drop data in a common area called the swimming pool, and all other plugins can grab, copy, transform or remove it. This special common area enables easy data sharing between plugins.
Chart
ICY uses JFreeChart as chart engine.
Forum
You did not find an answer in the FAQ ? Get answers in the forum ! details
VTK
ICY uses VTK for its 3D rendering. 3D volume can be rendered in both ray tracing or OpenGL providing ready to publish images !
Data storage and communication
ICY framework enables the storage of data link to your images by providing a simple XML file created beside your original image files. Any plugin can store any data in it. You can transmit images with their bounded data by simpy copying this file.
Frequently asked questions
Most of the questions you might have about ICY might have already an answer ! Check it out in the FAQ ! details
Spot Detector
Spot detector detects and counts spots.
ImageBrowser
Browse files in directories with thumbnails view details
Active Contours
Fast multiple coupled active contours using edge and region information for segmentation and tracking details
Snake Utilities
This is an icy package that encapsulates tools to design and implement parametric active contours. The package provides fast 2D and 3D filters for image preprocessing, and a framework to create and evolve snakes defined by a set of control points. details
KMeans Color Quantization
Quantize a color image in any given number of colors. details
Multi-Touch provider
Multi-touch provider allowing developers to let their plug-in receive rich multi-touch interaction. Currently supports Mac OS X, and generates raw finger events as well as pre-processed 2-finger gestures (pinch, drag, rotation) details
Micro-Manager for Icy
Micro-Manager plugin for Icy. Use your microscope and microscopic devices in Icy ! (Requires v. 1.1.4 at least) details
Connected Components
This plugin extracts groups of connected pixels in 2D and 3D based on their intensity and that of the background. Works on both binary and gray-scale data. Output can be pushed to the swimming pool for other plug-ins to further exploit the extracted objects. details
EzPlug
Create nice-looking plug-ins in no time with this library. No required knowledge in GUI programming: declare parameters and EzPlug automatically generates an elegant and standardized interface with rich and intuitive user-interaction. Check out the EzPlug tutorial to see all the features in action details
EzPlug Tutorial
Tutorial showing EzPlug\'s features in action. Check out the documentation to have a direct view of the code details
Stereo Viewer
This is an icy plug-in that implements a stereo vision system. Renders 3D stacks simulating a dual view camera. Each 3D view is rendered in fullscreen in a different monitor. Key controls: 'q' - Quits the full screen views. 'u' - Increases the separation between the cameras. 'd' - Decreases t... details
Multi-touch Image Manipulator
Unleash the power of multi-touch gestures on your viewer, and rotate, zoom or drag the image using two-finger gestures. Currently limited to 2D viewers. details
Protractor
A protractor to measure angles on images details
MaskEditor
This plugin is designed to manipulate binary masks over images. It contains all the basic tools to manage such objects. details
Snakes Segmentation
This is an icy plug-in that implements several fast active contour methods for image segmentation. It allows one to manage several snakes simultaneously, and to keep record of their location and size through the ROI persistence capability of icy. While our active contours are versatile enough to ... details
ROI Measures
This tool compute measures on the ROIs of the chosen sequence, updates the measures live when ROIs are changed and allows to copy/paste the measures to 3rd-party sheet edition softwares. Measures include geometric (bounding box) and intensity information. details
