Short Description

Automatically segment the boundary of a nucleus or cell starting from an approximate ROI. Supports 2D and 3D images and tracking of slowly moving cells. Ideal to study cell morphodynamics.

Team: Bio Image Analysis Unit
Institution: Institut Pasteur
Website: http://icy.bioimageanalysis.org

Documentation

Synopsis

This page describes the “Active Contours” plug-in, a segmentation technique able to extract the outline of objects in 2D or 3D images, and also track these outlines over time in a 2D or 3D time-lapse sequence. In a nutshell, an initial contour is drawn (or generated) around an object of interest, and will then snap on the object’s border automatically. In a tracking scenario, the final object border is taken as the initial position to segment the following frame, and so forth (NB: tracking applications therefore require a good time resolution during acquisition, such that an overlap exist between successive positions of the tracked object)

This documentation starts with a pseudo-exhaustive (partly historical) description of the method, its principle and its numerous implementations, before actually presenting the Icy plug-in in more details, including the choice of implementation and the available parameters.

If you are familiar with the approach, you may skip directly to the “Plug-in description” section, otherwise you are invited to read on (NB: the introduction is definitely more technical than I would hope, but this should be a good starting point to anyone interested in the underlying idea).

Citation

If you use this plug-in in your work, please cite the following reference: “Dufour et al., IEEE Transactions on Image Processing, 2011” (Note that this reference describes the 3D version of the algorithm, but the 2D version works exactly the same).

Background

The principle of deformable models is to define an initial curve (2D or 3D, opened or closed) in the vicinity of an object of interest, and let this curve deform until it reaches a steady-state when it fits the boundary of the target. Although this looks like black magic at times, there are sound underlying mathematics involved. The curve and its deformation can be expressed in many different ways, which I describe below.

Curve representations

Curve representations are presented here in (more or less) chronological order (rather than by group) to give a coherent view of the evolution in the field over the last decades. This review is however not exhaustive and only gives the main lines of research for the general reader, directed toward the purpose of the plug-in (cell segmentation and tracking).

  • Explicit parametric representation The original scheme (originally developed by Kass & Terzopoulos in 1987) is to represent the curve by a parametric equation. The parameters of this curve are adjusted during the deformation, and the curve is regularly reparameterized to ensure global smoothness. This model is known as the “Snake” model, since the evolution of an opened curve may mimic the undulations of a snake. Such model is fast and computationally efficient, although usually criticized for two main reasons: 1) their lack of topological flexibility (a parametric curve cannot be split), therefore a single curve must be created for each object of interest to detect; 2) the extension to 3D is quite delicate in terms of curve manipulation and reparameterization.
  • Implicit level set representation Almost coincidentally, other researchers from the field of fluid dynamics (namely S. Osher and J. Sethian in 1988) have derived an alternative representation of the curve, by defining it as the zero-level of a higher-dimensional Lipschitz function. One metaphor of this representation is a flame (the fluid) burning a hole through a piece of paper. The boundary (2D) of the hole is the zero-level of the flame function (3D), and the deformation of the hole’s boundary is implicitely controlled by the motion of the flame. For this reason this model is usually termed “implicit model”. This model has received extensive attention from the community, since it solved most of the drawbacks of the Snake model: 1) the model is topology-independent (the fluid function may evolve such that the zero-level actually appears as two distinct contours), hence a single level set function may be used to detect multiple non-touching objects in the image; 2) the formalism naturally works in any dimension. Yet, these advantages also come at a significant computational cost (notably in 3D, where the level set function is 4D). Moreover, for the purpose of cell segmentation and tracking, the topological flexibility can become a drawback: indeed, since topology is uncontrolled by nature, objects moving and eventually touching over time will see their zero-level merged together, such that their identity is lost. Many methods have therefore focused on re-inserting topology control in these approaches.
  • Explicit discrete representation With the improvement in computer graphics technology and in the Computer Aided Design (CAD) industry, extensive development has been conducted on discrete curve representations. The goal of these representations is to take the best of both worlds with 3 key features: 1) inherit the speed and computational efficiency of the parametric representation; 2) incorporate the topological flexibility of implicit representation; 3) rely on a discrete data structure in order to benefit from the power of graphics processing units for computation and/or rendering purposes. As a result, the computational cost in both time and memory load can be decreased by up to several orders of magnitude as compared to an equivalent level set representation.
  • Graph-cut representation Graph-cut representations rely on the theory of minimal path finding in a connected graph, and has only recently been applied in the context of deformable model-based segmentation. This representation is usually compared to the level-set approach, but considers the curve as the minimum cut of a flow that connects all image pixels to either an imaginary sink or target source. The major difference with the level set models lies in the mathematical description of the curve evolution, which is discussed later below.

Curve evolution

Once the contour representation is fixed, one must choose a mathematical framework to actually drive the deformation of the curve from its initial position toward the boundary of the object of interest. Here again, several solutions are available, the most popular ones cited below in arbitrary order.

  • Dynamic mass-spring systems. Such systems consider the curve to be discretized into a set of physical nodes connected with springs, and that the entire evolution of this physical system follows the Newton laws of motion. By applying attracting and repulsing forces on the various nodes of the system (using the image data to guide them in the correct direction), the curve deforms until it reaches a physical steady-state, assumed to correspond to the solution, although there is no guarantee on its exactness.
  • Energy-minimizing frameworks. These frameworks rely on the definition of an energy functional that combines terms related either to the image data (usually referred to as “data attachment” terms), to geometrical properties of the curve (usually termed “regularization” terms), or to prior estimates of the solution when available. The key idea is to define the functional such that the solution of the segmentation problem (i.e. the optimal position of the curve) is a minimizer of this functional. These frameworks are particularly popular thanks to their flexibility, while minimization per se can be conducted using a wide variety of numerical schemes, one of the most popular being the Euler-Lagrange steepest gradient descent, which guarantees convergence to at least a local minimum of the functional.
  • Statistical frameworks. These frameworks are very similar to the energy-minimizing ones, however the the optimal solution is defined by maximizing the probability of a given gain function, which is formed of terms analogous to those of the previous case. The advantage here is that the incorporation of shape priors is facilitated by the statistical formulation of the problem. The notion of convergence to a local minimum is complemented by a statistical measure of the correctness of fit of the original terms.
  • Energy-minimizing graph-cuts. The use of graph-cuts for deformable models has mostly been motivated by the high computational cost and convergence time of energy-minimizing (ot statistical) frameworks, based on the observation that steepest gradient descent approaches may take a very high number of iterations to converge, yielding substantial computational costs, notably in the case of level set approaches. The idea here is to minimize an energy functional defined on a graph constructed from the image grid, such that each image pixel (or voxel in 3D) is connected to its neighbors by an edge with a cost, while one set of nodes are connected to an additional imaginary “source” node, and the remaining nodes to a “target” node. This graph is then cut with minimal cost using a principle of maximal flow algortithm. The advantage is a substantial gain in convergence time (the number of iterations is up to several order of magnitude lower than in Euler-Lagrange minimization), at the cost of a more complex incorporation of energy terms, which need to be expressed in terms of graph edge costs.

Plug-in description

This plug-in implements Multiple Coupled Active Contours in 2D and 3D, according to an energy-minimizing framework with a discrete explicit representation of the contours (polygons in 2D, and triangular meshes in 3D, both with self-parametrisation and topology control). If you have no idea what this last sentence means, you probably have skipped the explanation above (and if you couldn’t understand the description above, the take-home message is: it works in 2D & 3D, tracks objects over time, handles multiple contours simultaneously, detects divisions, and is pretty damn fast!)

The contour evolution exploits multiple cues to achieve optimal segmentation (both based on the image and on semantic information). Just like you would perfect a cooking receipe by adjusting the nature and quantity of ingredients, the best segmentation is achieved by a careful adjustment of the various components, which are detailed below (and correspond to the plug-in parameters):

Major sources of information:

  • Edge-based information: common fluorescent markers used in microscopy are specific to membrane structures (actually, phase contrast microscopy behaves the same way, though without specific markers). The contour may exploit this information to “look” for bright (or dark) edges of a structure, and stop when these structures are reached. The caveat here is that the contour must be already close to its target in order to “snap” to the border correctly (otherwise the contour won’t “see” it).
  • Region-based information: when using a “full” fluorescent stain of the structures of interest (cytoplasm, nucleus, or both), region-based information is a very powerful asset for segmentation and tracking. This plug-in exploits the well-known Mumford-Shah functional to estimate the optimal frontier that segments the regions of interest by maximising the difference between their average intensity and that of the background. Here this also works with multiple regions that do not share the same average intensity (convenient if the staining is not constant from cell to cell). The advantage here is that the contour does not need to be very close to the target to segment it (although being close makes the whole process faster!), and does not need to see “sharp” edges to find the boundary
  • Contour smoothness: as the image data may be quite noisy (especially in low-light condition), a gemoetrical constraint is usually imposed to maintain a certain level of smoothness to the deforming contour. NB: pushed to the extreme, this smoothness constraint will cause the contour to progressively shrink and eventually disappear, so use wisely! (hint: use less smoothness on clean data, more on noisy data).
  • Multi-contour coupling: each region of interest being segmented (and tracked) by its own contour offers a considerable advantage when dealing with objects in contact. Indeed, this plug-in will exploit semantic information and prevent contours from overlapping or fusing when they come into contact, allowing to segregate touching objects, even during prolonged contacts over time. Caveat: extensive prolonged contacts (twisting, swirling) may not be handled properly, as the actual boundary between objects is not necessarily clear, even for the human eye!

Other sources of information (less fundamental, but still useful):

  • Inflation (a.k.a. “balloon force”): should you opt for edge information, and if your contour is too far away from the target, an arbitrary inflation force can be applied to the contour such that it will permanently shrink or inflate with a certain speed. This should be used minimally and with care, as this should only help the contour find real edges, and not prevent it from staying there.
  • Volume conservation: in some cases (particulary in contact situations, as desribed above), the separation between touching objects is challenging. This plug-in has the option to enforce that each tracked object preserves a “roughly” constant volume over time (flucuations are allowed though), in order to improve tracking (this assumption is highly debatable from a biological perspective, and definitely wrong in 2D, but might solve tricky situations in 3D).
  • Axis constraint: to further assist in separating objects in contact, this plug-in may impose an additional constraint, imposing that contours preferentially deform along their major axis (if there is one).

Finally, the evolution of the contour itself (i.e. the minimisation of the underlying mathematical functional) also has its set of parameters which can be adjusted. These have more to do with the total execution speed of the segmentation / tracking process, here again with pros & cons:

  • Evolution time-step: although the contour may seem to move magicly and smoothly, it actually is advancing by very small jumps in the image. The size of this jump can be adjusted to move faster to the solution, with the immediate caveat that moving too fast may cause instabilities to the contour (it may oscillate around the optimal solution, and sometimes have issues when dealing with other touching objects)
  • Contour sampling: contours used in this plug-in are represented as a set of geometrical primitives (segments in 2D, triangles in 3D) connecting so-called “control points”. The average separation between these control points can be adjusted, noting that a smaller distance results in more precise (but slower) computations, while a larger distance results in faster computation, with the risk of losing structures smaller than this sampling step.
  • Convergence criterion: once the contours have found their target, in most cases they will (or rather, seem to) naturally stop moving. Mathematically speaking, this means that a steady-state solution to the problem has been found, but this state is only steady “in theory”. In practice, there are always minor oscillations around this solution, and they are detected by measuring the overall movement of each contour, stopping them if they fall under a reasonably low value.

Step-by-step guide

1) Open an image or video sequence

2) Draw one (or more) region(s) of interest (ROI) around or across the object(s) of interest. You may also generate one or more ROI automatically using other plug-ins such as the “Thresholder” or the “HK-Means”, which is a good step towards full automation of the workflow (and is the preferred way of initialising the method in 3D, until a good 3D ROI editor is implemented in Icy).

3) Adjust the various parameters of the method (see the explanation above, and the example below)

4) Select the desired output (none, labeled sequence, copy of original sequence with detected objects as ROI)

5) For tracking: first leave the tracking option unchecked; adjust the parameters on the first image; only then check the “tracking” option to process the entire sequence.

6) To access advanced parameters, check the corresponding box and the interface will update automatically.

Example

To run this example, you may download the following video sequence of a moving cell via this link (you may want to right-click and save it on your disk).

Open the active contours plug-in, follow the instructions above, and refer to the screenshot below for the parameters. If all goes well, you should obtain the exact same results as shown below.

Note that a small tooltip message will appear under the mouse as you hover each parameter, indicating how to adjust the parameters for each scanario.

Active contours for cell segmentation and tracking

 

 

Resources needing this

6 reviews on “Active Contours

  1. Thomas Provoost
    Amazing tool, but very complicated to use when you use it for first time. Some doc and 5 stars!
  2. louiselaure
    Great plugin! And now also works in 3D and with entering objects! And has a protocol version. Just great nothing else to say! On the doc side, would be great if each parameter could be explained on icy website (more than just the arrow explaination) to increase its user-friendly aspect.
  3. IcyLyd
    Probably the most impressive plugin I saw. In combination with 3D and track painter it is just awesome. I'm looking forward a version working on neurons ! ;)
  4. JL
    The very best GUI-available plugin I've used so far for 2D and 3D segmentation - runs fast and finds cell boundaries quite accurately!
  5. Anonymous
    Thank you for the fast update, it works perfect! This is a great help!

Leave a Review

Leave a review
Cancel review
View full changelog
Close changelog

Changelog

  • Version 4.4.4.0 • Released on: 2019-09-17 16:30:00
    Download
    Description:

    Fixed contour naming for easier identification when using tracking (Stephane)
    WARNING: Contour naming strategy changed so be sure to be aware of that with your previous scripts based on contour naming.

  • Version 4.4.3.0 • Released on: 2019-09-03 17:00:00
    Download
    Description:

    Disabled "Volume constraint" parameter which was not working and could introduce issues in contour evolution (Stephane).

  • Version 4.4.2.0 • Released on: 2019-09-02 17:00:00
    Download
    Description:

    Fixed / tweaked forces calculation when getting out of bounds so contours should stick inside them (Stephane).

  • Version 4.4.1.0 • Released on: 2019-07-17 18:00:00
    Download
    Description:

    WARNING: refer to changelog of previous version.
    - tweaked feedback force calculation to avoid too much oscillation
    (Stephane)

  • Version 4.4.0.0 • Released on: 2019-07-17 15:00:00
    Download
    Description:

    WARNING: this version bring important changes for 2D active contour, report any regression if you find some on the forum please.
    Here're the changes :
    - added support for "entering" ROI (ROI with specific T position)
    - fixed several bugs with 2D contour resampling leading to possible contour breakage / explosion..
    - several tweaks / fixes in 2D active contour code in general
    (Stephane)

  • Version 4.3.4.0 • Released on: 2019-05-22 18:00:00
    Download
    Description:

    - fixed memory leak from Track Manager / TrackSegment.
    - other tweaks
    (Stephane)

  • Version 4.3.3.1 • Released on: 2018-10-11 17:21:29
    Download
    Description:

    new try for previous NPE fix :p

  • Version 4.3.3.0 • Released on: 2018-10-11 16:56:45
    Download
    Description:

    fixed possible NPE in 2D contour (Stephane).

  • Version 4.3.2.0 • Released on: 2018-10-02 16:54:00
    Download
    Description:

    fixed 3D contour splitting (Stephane).

  • Version 4.3.1.0 • Released on: 2018-09-28 17:03:42
    Download
    Description:

    better memory management for 3D active contour (Stephane).

  • Version 4.3.0.0 • Released on: 2018-09-25 18:16:02
    Download
    Description:

    Many changes to the 3D Active Mesh (some fixes and optimizations - Stephane)

  • Version 4.2.1.1 • Released on: 2018-09-25 18:15:30
    Download
    Description:

    Regression from version 4.2.0.0

  • Version 4.2.1.0 • Released on: 2018-09-25 18:12:04
    Download
    Description:

    Many changes to the 3D Active Mesh (some fixes and optimizations - Stephane)

  • Version 4.2.0.0 • Released on: 2017-09-21 16:05:11
    Download
    Description:

    * Re-privatise access to the track group (rollback from previous commit)
    * (Hopefully) better cleaning of the track group at startup, allows keeping the track group alive after analysis without causing (too large) memory leaks
    * The overlay remains visible after analysis if no export is required (wasnt the case in headless/protocol mode)

  • Version 4.1.21.1 • Released on: 2017-09-15 09:33:35
    Download
    Description:

    Re-uploaded jar file

  • Version 4.1.21.0 • Released on: 2017-08-29 17:00:46
    Download
    Description:

    Fixed the export to area-type ROI

  • Version 4.1.20.0 • Released on: 2017-02-10 16:14:17
    Download
    Description:

    Added label export in standalone interface

  • Version 4.1.19.1 • Released on: 2017-02-10 13:14:48
    Download
    Description:

    Re-uploaded invalid jar file

  • Version 4.1.19.0 • Released on: 2017-02-10 10:58:46
    Download
    Description:

    * Fixed a display issue in 3D
    * Added a block to save 3D tracks as VTK files (experimental)

  • Version 4.1.18.1 • Released on: 2017-01-16 14:18:36
    Download
    Description:

    Re-uploaded JAR file

  • Version 4.1.18.0 • Released on: 2017-01-13 16:32:14
    Download
    Description:

    * Fixed an issue with counter-clockwise defined contours
    * Added the "axis constraint" parameter in the block version
    * Code optimisation and cleaning

  • Version 4.1.17.0 • Released on: 2016-12-11 16:38:56
    Download
    Description:

    Fixed an issue when computing the average image intensity for contours located outside the image bounds

  • Version 4.1.16.0 • Released on: 2016-11-30 23:25:33
    Download
    Description:

    Fixed an issue where the local image statistics inside a newly created contour could be missing

  • Version 4.1.15.1 • Released on: 2016-09-20 18:10:40
    Download
    Description:

    Re-uploaded invalid jar file

  • Version 4.1.15.0 • Released on: 2016-09-20 15:18:45
    Download
    Description:

    Improved the safeguard that prevents infinite contour resampling

  • Version 4.1.14.0 • Released on: 2016-09-12 11:27:14
    Download
    Description:

    Added a safeguard to prevent an issue where contours would resample indefinitely

  • Version 4.1.13.1 • Released on: 2016-08-30 17:23:25
    Download
    Description:

    Regression from version 4.1.12.0

  • Version 4.1.13.0 • Released on: 2016-08-30 17:11:31
    Download
    Description:

    Attempting to fix a dead lock during contour resampling

  • Version 4.1.12.0 • Released on: 2016-08-24 14:47:28
    Download
    Description:

    Fixed the swimming pool export for Protocols

  • Version 4.1.11.0 • Released on: 2016-06-23 21:30:42
    Download
    Description:

    Fixed a substantial memory leak occurring during batch processing

  • Version 4.1.10.1 • Released on: 2016-03-08 21:44:27
    Download
    Description:

    Fixed a silly copy-paste

  • Version 4.1.10.0 • Released on: 2016-03-08 21:38:59
    Download
    Description:

    Quick fix on the contour naming

  • Version 4.1.9.0 • Released on: 2016-03-08 21:34:23
    Download
    Description:

    Updated the deformation profiler to include box width, height and depth, and calculate perimeter and surface in 2D

  • Version 4.1.8.0 • Released on: 2016-03-08 16:42:33
    Download
    Description:

    Add an identifier to each contour (to identify their starting point post-analysis)

  • Version 4.1.7.0 • Released on: 2016-02-11 15:03:24
    Download
    Description:

    Investigating strange errors in the calculation of average intensity

  • Version 4.1.6.0 • Released on: 2015-10-27 10:31:35
    Download
    Description:

    Fixed the behaviour of the progress bar and stop button

  • Version 4.1.5.0 • Released on: 2015-05-29 18:29:05
    Download
    Description:

    * Code refactoring
    * Fixed intensity calculations (again)

  • Version 4.1.4.0 • Released on: 2015-05-20 23:56:08
    Download
    Description:

    Minor fix on the intensity statistics calculation

  • Version 4.1.3.0 • Released on: 2015-03-18 19:04:55
    Download
    Description:

    * Added TemporalROI (was missing from the .jar file)
    * Fixed initialisation of a contour from a 2D Polygon

  • Version 4.1.2.0 • Released on: 2015-03-18 15:04:45
    Download
    Description:

    Results are stored (and displayed) in GUI mode even when clicking on the "stop" button

  • Version 4.1.1.0 • Released on: 2015-03-17 21:04:52
    Download
    Description:

    * New: division sensitivity parameter
    * Minor tweaking on the division detection
    * Minor interface re-arrangement
    * TemporalROI reworked into a single class

  • Version 4.1.0.0 • Released on: 2015-01-23 17:31:46
    Download
    Description:

    * Ability to output the result as temporal ROIs (experimental)
    * Several bug fixes

  • Version 4.0.4.0 • Released on: 2014-12-02 17:30:04
    Download
    Description:

    * Fixed null pointers in the overlay
    * Applied same 3D volume constraint in 2D

  • Version 4.0.3.0 • Released on: 2014-12-02 15:47:08
    Download
    Description:

    * Fixed edge data calculation
    * Improved pixel sampling
    * Improved performance in 3D

  • Version 4.0.2.0 • Released on: 2014-12-01 19:34:23
    Download
    Description:

    Fixed various multi-threading issues

  • Version 4.0.1.0 • Released on: 2014-11-27 11:04:25
    Download
    Description:

    * Fixed issue in VTK export (Deformation Profiler)
    * Improved overlay management

  • Version 4.0.0.0 • Released on: 2014-11-24 15:19:36
    Download
    Description:

    Major plugin update:
    * 3D analysis now uses the new "3D mesh ROI" SDK (rendering much improved)
    * Dramatically improved the volume conservation constraint (especially in 3D)
    * Deformation profiler (Track Manager plugin) now remembers the last used folder
    * Other minor tweaks and fixes

  • Version 3.2.2.0 • Released on: 2014-08-21 19:59:45
    Download
    Description:

    * Fixed an issue on 2D image segmentation
    * Added more descriptors in 3D for the track manager (REMINDER: this is an experimental feature and will be moved into a standalone plugin upon completion)

  • Version 3.2.1.0 • Released on: 2014-08-11 15:56:06
    Download
    Description:

    Reduced sensitivity to cell division (should me more robust for thin line segmentation)

  • Version 3.2.0.0 • Released on: 2014-08-11 15:29:28
    Download
    Description:

    * Fixed issue where tracks were no longer sent to the track manager
    * Added new shape measures
    * Cleaned up code

  • Version 3.1.5.0 • Released on: 2014-08-07 19:15:30
    Download
    Description:

    Update to the previous commit (missing file)

  • Version 3.1.4.0 • Released on: 2014-08-06 19:46:09
    Download
    Description:

    New track processor to measure 3D shape descriptors (EXPERIMENTAL)

  • Version 3.1.3.0 • Released on: 2014-08-04 19:03:15
    Download
    Description:

    Fixed issue caused by vanishing contours

  • Version 3.1.2.0 • Released on: 2014-08-04 17:26:51
    Download
    Description:

    * Fixed issues caused by using 2D contours on 3D data
    * Tracking data can be exported within protocols

  • Version 3.1.1.0 • Released on: 2014-08-04 12:35:41
    Download
    Description:

    * Added safeguards to troubleshoot code (notably when running 2D contours on 3D data)
    * "Evolution bounds" set to "no sequence" by default in protocols mode

  • Version 3.1.0.0 • Released on: 2014-08-01 18:00:36
    Download
    Description:

    Multiple bug fixes and improvements, including:
    * Fix ROI2DRectangle not initialising properly => replaced by ellipse
    * Fixed 2D & 3D contour evolution on 3D data
    * Improved error handling
    * Print surface area for each mesh to the console (Icy's values in metric units are not correct in 3D)

  • Version 3.0.1.0 • Released on: 2014-07-15 18:17:08
    Download
    Description:

    Fixed several issues related to error handling in a multi-threaded context

  • Version 3.0.0.0 • Released on: 2014-07-10 16:31:22
    Download
    Description:

    Major update: plugin works on 3D data!
    NB: the 3D Active Meshes plugin is now superseded by this new version. Your now-way solution to active contours for 2D/3D cell segmentation and tracking.

  • Version 2.7.0.1 • Released on: 2014-05-17 12:53:05
    Download
    Description:

    Fixed jar file

  • Version 2.7.0.0 • Released on: 2014-05-16 21:06:09
    Download
    Description:

    * Added optional parameter to limit the number of iterations
    * Tracking: ability to monitor new objects entering the field
    * Multiple performance improvements

  • Version 2.6.0.1 • Released on: 2014-02-21 13:10:11
    Download
    Description:

    Minor fix due to a missing method after the latest Protocols SDK update

  • Version 2.6.0.0 • Released on: 2014-02-17 23:06:20
    Download
    Description:

    First major upgrade towards a 3.0 release:
    * Major code restructuring
    * Higher stability
    * General performance improvements
    * New volume conservation constraint
    * Output ROI as area or polygons
    * Improved edge detection

  • Version 2.5.14.0 • Released on: 2013-11-07 14:57:58
    Download
    Description:

    * Updated to Icy 1.4
    * Return of a sensitivity parameter (for very specific uses)

  • Version 2.5.13.0 • Released on: 2013-10-14 18:01:21
    Download
    Description:

    Fixed minor display issues

  • Version 2.5.12.0 • Released on: 2013-10-03 15:57:23
    Download
    Description:

    Don't show the track manager in headless mode

  • Version 2.5.11.0 • Released on: 2013-09-27 16:23:10
    Download
    Description:

    handle single contour evolution in a single thread (but *NOT* the last converging one in a multi-contour case)

  • Version 2.5.10.0 • Released on: 2013-08-12 10:46:24
    Download
    Description:

    * removed unnecessary parameter in ActiveContour.move()
    * fixed issue with null structures in dividing contours
    * fixed mass center computation
    * Minor display adjustment

  • Version 2.5.9.0 • Released on: 2013-07-24 19:15:38
    Download
    Description:

    * Fixed an issue causing contours not to move in some cases
    * Fixed issue causing the graphical interface to freeze in standalone mode

  • Version 2.5.8.0 • Released on: 2013-07-24 14:55:39
    Download
    Description:

    * Fixed an issue in the resampling routine
    * Reworked and improved multi-threaded behavior

  • Version 2.5.7.0 • Released on: 2013-07-12 09:56:56
    Download
    Description:

    Fixed an issue with the overlay (probably due to concurrent modifications in the track manager)

  • Version 2.5.6.0 • Released on: 2013-07-11 18:17:29
    Download
    Description:

    Throw an error message in block mode when no ROI is given as input

  • Version 2.5.5.0 • Released on: 2013-06-24 18:55:01
    Download
    Description:

    * Improve the overlay (font changed to MS type, color always bright)
    * make sure the ROI output exists before filling it

  • Version 2.5.4.0 • Released on: 2013-06-19 23:52:16
    Download
    Description:

    Region-based information is now rescaled properly depending on the data type

  • Version 2.5.3.0 • Released on: 2013-06-15 13:03:57
    Download
    Description:

    Many fixes with the tracking results

  • Version 2.5.2.0 • Released on: 2013-06-14 01:32:01
    Download
    Description:

    * Fixed headless behaviour as well as threading issue with the Track Manager
    * Fixed issue in region force computation (incorrect normalisation)
    * Fixed issue when encountering freshly divide contour with empty data structure

  • Version 2.5.1.0 • Released on: 2013-06-10 22:11:58
    Download
    Description:

    Fixed an issue causing tracked contours to have an incorrect position (thx to Timothée Lecomte)

  • Version 2.5.0.0 • Released on: 2013-06-08 23:44:57
    Download
    Description:

    Major interface update and code optimization. In a nutshell:
    - less parameters are visible (new "advanced" option)
    - new balloon force
    - bound evolution to a field or ROI
    - improved block implementation
    - automatic adjustment of some parameters

  • Version 2.4.1.0 • Released on: 2013-05-29 12:50:10
    Download
    Description:

    Removed sensitivity parameter (it is now autmatically computed from the data)

  • Version 2.4.0.0 • Released on: 2013-03-12 20:40:20
    Download
    Description:

    * Deal with any type of input
    * Block support (BETA)
    * Performance adjustments

  • Version 2.3.10.0 • Released on: 2012-10-30 18:40:52
    Download
    Description:

    * Fixed null pointer issue when storing results
    * Removed some deprecated calls

  • Version 2.3.9.0 • Released on: 2012-07-17 19:30:44
    Download
    Description:

    Fixed issue causing plugin to crash when loading a new sequence while plugin is running in tracking mode

  • Version 2.3.8.1 • Released on: 2012-07-06 14:16:21
    Download
    Description:

    Display the Tracking Manager only when the tracking option is checked

  • Version 2.3.8.0 • Released on: 2012-07-06 14:15:54
    Download
    Description:

    Display the Tracking Manager only when the tracking option is checked

  • Version 2.3.7.1 • Released on: 2012-06-15 15:12:33
    Download
    Description:

    Track manager was not showing in tracking mode

  • Version 2.3.7.0 • Released on: 2012-04-12 13:56:28
    Download
    Description:

    Updated to Filter toolbox 2.1.0.0

  • Version 2.3.6.1 • Released on: 2012-03-05 18:18:31
    Download
    Description:

    Re-updated Jar file (strange bug reports seem to be one line off)

  • Version 2.3.6.0 • Released on: 2012-02-29 19:22:59
    Download
    Description:

    * Adjusted required input parameters (error messages if no input sequence)
    * updated to EzPlug 1.6.4.1

  • Version 2.3.5.0 • Released on: 2012-02-17 20:07:00
    Download
    Description:

    * Removed references to deprecated EzMessage API
    * fixed progress bar update
    * show error message when no ROI on the image

  • Version 2.3.4.0 • Released on: 2012-02-07 15:38:58
    Download
    Description:

    minor updates to comply with EzPlug 1.6+

  • Version 2.3.3.0 • Released on: 2012-01-24 10:04:09
    Download
    Description:

    fixed handling of objects too small to initialize to a contour

  • Version 2.3.2.0 • Released on: 2012-01-23 14:30:11
    Download
    Description:

    fixed initialization based on ROIs

  • Version 2.3.1.0 • Released on: 2012-01-13 15:16:24
    Download
    Description:

    * fixed two issues regarding contour self-intersection
    ** fixed bug in self-intersection detection (loop and divisions were not correctly distinguished)
    ** fixed handling of contour creation and deletion in the main plug-in code

  • Version 2.3.0.0 • Released on: 2012-01-11 15:26:02
    Download
    Description:

    Added internal plug-in to fill holes in 2D masks (needed for correct contour initialization via masks).
    NOTE: the plug-in is accessible via the "Other plugins" menu, but should soon move to an independent plug-in (or join an existing one)

  • Version 2.2.1.0 • Released on: 2011-12-14 17:58:12
    Download
    Description:

    * major speed increase (2 orders of magnitude !!)
    ** deformation process is now multi-thread and optimized in case no contour coupling is needed
    ** for region-based evolution: the region means are updated only every 10 iterations, which is sufficient in all tested cases
    * fixed result storing method (doing additional loops for no reason)
    * fixed output of detections for use with the track manager

  • Version 2.1.2.0 • Released on: 2011-12-13 16:13:50
    Download
    Description:

    reworked output functionality:
    - possibility to output a labeled sequence (each object id is labeled using its id as gray value)
    - possibility to output a clone of the input with colored+named ROI2DArea objects

  • Version 2.1.1.0 • Released on: 2011-12-12 15:00:41
    Download
    Description:

    * core code:
    - improved pixel bilinear sampling speed
    - (re)inserted discretization time step
    - bound contour evolution within a given rectangle (avoids out-of-image leaking)
    - edge information measured on smoothed image (in the Catte-Lions sense)
    - reworked axis constraint (more efficient and intuitive)

    * interface:
    - numerous comments via tooltips
    - bounded most parameters to [0,1] or [-1,+1] for mathematical reasons
    - added time step parameters
    - merged "contour" and "convergence" groups

  • Version 2.1.0.0b • Released on: 2011-12-09 15:31:13
    Download
    Description:

    * major upgrade: implemented axis contraint, allowing to keep the contour shape close to its major (long) axis
    * fixed bug for ROI-area and isovalue initializations with multiple connected components
    * various performance fixes

  • Version 2.0.5.1 • Released on: 2011-12-07 16:19:45
    Download
    Description:

    new build to reflect Detection API changes

  • Version 2.0.5.0 • Released on: 2011-11-30 13:17:04
    Download
    Description:

    fixed bug causing contour to move in opposite direction if points are ordered counter-clockwise

  • Version 2.0.4.0 • Released on: 2011-11-29 13:40:17
    Download
    Description:

    * fixed bug occurring when closing the input image while the plug-in runs
    * adjusted default parameters

  • Version 2.0.3.0 • Released on: 2011-11-29 08:11:42
    Download
    Description:

    * updated to icy.type.DataType
    * contour is stored as a double-precision path instead of an int-precision polygon (smoother rendering)
    * added Timer to refresh screen only every X millisec (avoids stalling the interface on fast executions)

  • Version 2.0.2.0 • Released on: 2011-04-28 16:59:52
    Download
    Description:

    Fixed issue causing the plugin to crash if called via code without any graphical interface (batch mode).

  • Version 2.0.1.0 • Released on: 2011-04-26 14:18:48
    Download
    Description:

    - fixed bug causing wrong polygon ROI initialization (first ROI point missing)
    - added channel and slice parameters to the region-based input term, in order to process a specific slice and channel in 3D color images (feature request on the user forum by Will)

  • Version 2.0.0.0 • Released on: 2011-03-25 17:36:50
    Download
    Description:

    Major update: implemented tracking.

  • Version 1.1.0.2 • Released on: 2011-02-18 14:55:19
    Download
    Description:

    same as 1.1.0.1

  • Version 1.1.0.1 • Released on: 2011-02-18 10:55:46
    Download
    Description:

    adjusted buildpath to point to ICY's ArrayMath utility class

  • Version 1.1.0.0 • Released on: 2011-01-31 12:57:25
    Download
    Description:

    Implemented contour creation by triangulation of binary masks.
    A contour may now be initialized also using a ROI2DArea and by specifying a given iso-value.
    NOTE: in both cases the mask must be a single topological component (i.e. triangulating multiple disjoint areas will not work for the moment)

  • Version 1.0.0.0 • Released on: 2011-01-26 21:02:35
    Download