Need help or advice ? Come to the Icy club ! - Every other Thursday morning from 9h30 to 12h30 - Francois Jacob Building - Main hall - Pasteur

Associated publications

Don't forget the authors !
If you use this plugin, please cite it in your publication !

User reviews

5 star
4 star
3 star
2 star
1 star
average rating: 4.35

Please log-in to post a review
11 Dec 2018 19:25
Very Good!
Sebastien Causse
28 Sep 2018 16:03
An extremely useful and very accurate plugin.
A plus would be an option to filter the spots according to their integrated or maximal intensity.
27 Apr 2017 14:44
First tests on noisy images are encouraging. Would it be possible to combine two types of filtering (area and diameter)? And to add the possibility of a manual curating (adding missed objects, and removing false positives) ?
Budleigh Bees
16 Dec 2016 17:26
Very nice tool for beekeepers too! Use to count the number of mites that fall -
26 Sep 2016 19:33
Very nice plugin with an easy GUI. Thanks. We will use it efficiently.
01 Sep 2016 14:27
Very good, one of the reasons why I started using Icy!
18 Dec 2015 11:38
A very handy plugin when properly configured !
27 Dec 2014 18:10
great tool to count the spots!! however, when I want to export the data from the ROI window in order to get the areas in um² (because in the xls file saved, the surface is different in an undefined unit), it wont respond and it will block my computer.. thanks for the job!
30 Nov 2014 19:10
Even better after the recent updates!
Alexandre Dufour
24 Mar 2014 18:06
One of Icy's best plug-in just got better... almost there: 5 stars if you adjust wavelet size in Z using the X/Z resolution ratio
Thibault Lagache
08 Nov 2013 12:30
the very standard tool of detection!
07 Apr 2013 00:19
Really great detection. The batch analysis is also very usefull. I would put 5 stars if we could combine "scale 1 union scale 2" and not only "scale1 intersecting scale2".
Stephane Dallongeville
05 Mar 2013 17:46
Strong spot detection algorithm with load of setting, some of them could probably be simplified (change scale level by object size for example). Nice documentation effort, thanks !
Thomas Provoost
27 Feb 2013 10:54
Amazing tool when properly configured.
07 Jun 2012 11:09
Hi, very nice plugin
-but i was wondering wether it was possible to have a precreated multiple roi or roi grid to allow batch measure
-as it work with roi from sequence but when batch analysis is started loose all created roi and the ri from band does not allow to create roi from scratch
thanks in advance
27 Feb 2012 17:31
Hi, it would be great to add a parameter to count also spots that are located under a certain distance from the ROI created from band (to consider not only spots into, but also affixed to the defined ROI)
08 Feb 2012 17:27
Hi, I have some ideas for your plugin:

1/ Display the binary image over the input image.
2/ Test the detection over the first image of a sequence instead of all the sequence.

Spot Detector

by Fabrice de Chaumont

Spot detector detects and counts spots.

- Detects spots in noisy images 2D/3D.
- Depending on objective, spots can be nuclei, nucleus or cell
- Versatile input: sequence or batch of file.
- Detects spot in specific band/channel.
- Multi band labeling: automaticaly creates ROIs from one band and count in the same or an other band.
- Filters detection by size.
- Sort detection by ROIs
- Output data in XLS Excel files: number of detection by ROIs, and each detection location and size.
- Outputs withness image with ROIs and detection painted on it.
- Outputs binary detection image.
- Displays detections
- Displays tags

Publication Id
See technical details
View complete changelog


Setting up the processing pipeline:

The detection process is divided in several sub processes:


The input can be the current sequence or a batch of file.

Pre processing:

The pre processor is currently composed of only one module to select the desired channel to use for detection.


The UnDecimated Wavelet Transfrom detector is designed to detect spots, even if the amount of noise in the image is high.

You need to setup whereas the spot you wish to detect are brighter or darker than the background. As you select which option to use, an example of the image expected is displayed in the box bellow.

The panel size of spots to detect (scale and threshold) let you specify the size of the spot you wish to detect. Each scale correspond to a spot size. The scale 1 is very small and tends to extract the noise, and should not be used. The scale 2 (default) is often a good deal for spots of about 4 to 7 pixels diameter. Then, with the button add scale you can set bigger scales that will double the size of the object you wish to detect. Note that the use of too big scales (4 or 5) will tend to link detection between them.

In the detection process, original images are processed to obtain coefficient images (basically coefficient images contains the impulse response of a corresponding scale, with limited influence of the other scales, so typically it removes the background and the noise). In those images, a Wavelet Adaptive Threshold is computed. Then you can influence the automatic thresholding with the value you enter: If you leave the default 100 value, then you will obtain the set of detection found with the original WAT. If you set 80, you will obtain less detection. 140 is a very high value, you will have a lot of detection, and you should not go above except in very specific situations. Also, if your detection is too sensitive, this will connect detections. As they connect, you obtain less detection, even if you are more sensitive.

It is possible to combine several scale. If you do so, only the pixel present in each different scale will be kept for the final detection.

New: The option 'consider WAT considering ROI' has been introduced to help people taking images with either unregular background tissues or if large areas of saturated signal is present in the image (typically in the next image example below, the white area on the right hand side of the picture.). If enabled, the WAT is computed on the union of all the ROIs present in the image.

If the display binary image checkbox is selected, the program will display a black and white image representing the filtered output of the wavelet detection.

Region of Interest:

ROI from sequence:

The ROI drawn by the users are used by the detector. If no ROI is present, the whole image is considered. If one or more ROIs are presents, then the program only considers detections inside ROIs. The program recognize the black ROIs as removed area (could be scratches, destroyed tissue...). All results in the final Excel file will then be classified by ROI, providing its id, number of detection and its area in pixels² (see output section for details). Black ROIs are substracted to all other presents ROIs.


ROI from band:

In the following image, the user wishes to detect the red spots, but only if they are over the blue area. This module let the user choose which channel to use as a driver channel, and creates an ROI to use for the detection.


The parameters are the band/channel number, and the threshold to apply. Settings can be tested directly on the current sequence selected.

If the checkbox enable multiple ROIs is selected, then each cell will be individualy segmented. A size criteria (Minimum size of ROI) is used to avoid segmenting the too little cells.






The two following images illustrates the automatic segmentation of the cell, and then the automatic count in red channel for each cell:


The current filtering box is very simple and only provide a size criteria.


The output exports detection data to Excel, and also provides images with detection markers and binary image for control.

By default all the outputs are stored in a folder named save located in the same folder as the input images. If you run several times the detector, the image and XLS file in the save folder will be overwritten.

If you use the option append data to existing files, the XLS file will get an extra datesheet per detection process.This could lead to very big file.

You can also centralize all results to one file using the enable specific file option. Several mode can be used at the same time: automatic XLS export and specific file.

The last check box set if you wish to keep copy of images where the detection spots will be displayed as you set in the following display section. This also displays ROIs. Useful for control. The binary image is a black and white image showing what final part of the image (considering filtering) have been used.

The XLS Output look like the following image. All info about the detection are stored in it: date, input type with file name, pre processor, detector with settings, list of ROI with a summary containing id, ROI name, surface, number of detection, tags. Then a detailed list of detection is displayed with all detection's centroids (x,y,z,t) and its surface in pixels.

The export to swimming pool option enables the storage of detection in an area where all other plugins can grab the detection. Use this option if you wish to use a particule tracking plugin based on your detections.

XML Output :

The XML ouput is perfect for a batch containing a large number of file. You can then drag and drop the XML file into Excel to use the its sorting feature (see image). Warning: if the XML file already exists, information will be appened to it. Select a new one or delete the previous one to avoid this.


 The last display section let you choose what information should be displayed over the sequence.

If you perform the detection over a 3D stack, the display will show detections centered on the current Z. This can lead to a blinking feeling while visualizing detections. In this case you should use the project all detections of a same stack to display all the detection corresponding to a same t point.



J.-C. Olivo-Marin "Extraction of spots in biological images using multi scale products" Pattern recognition, vol. 35-9, pp. 1989-1996, 2002. link to publication.

Plugin structure (for developpers)

It is possible to write a specific process as a plugin. The spot detector will recognize it and will integrate it into its menu. See source code and watch how this is already done for the current modules.