Various ways are proposed in different websites for example:

Here, a workflow template using ImageJ's build-in Find Maxima ( Process -> Find Maxima) is explained. It can be used for many 2D counting-related tasks.

For counting small, bright foci (dots), set Output type to be Point Selection. If too many points are detected, the number may be reduced using one or more of the following methods:

Apply a filter to reduce noise, e.g. Process -> Filters -> Gaussian Blur... prior to running Find Maxima Set a minimum threshold with Image -> Adjust -> Threshold... prior to running Find Maxima, then use the Above lower threshold option within the dialog box Increase the Noise tolerance value (which effectively acts as a local threshold)

The resulting point selection can be modified (points added/removed) by the Multi-Point tool.

After the points are available, final measurements can be made using Analyze -> Measure.


The macro segments and classifies human spermatozoids nuclei (DAPI) based on the number of FISH signals (spots) they contain. It reports the percentage of occurrences of user defined classes (combinations of spot multiplicity in the FISH channels) as well as the position (point selections) of the detected nuclei falling in these classes. The input image should be an hyperstack with 4 channels: DAPI (first channel) and three FISH channels. The images are typically obtained as a maximum intensity projection of few channels (confocal) or a single z slice acquisition (widefield).

Example image available in the linked page. 

has function