Compare counts two observers

Hi all,

I have a drone image from wich I counted all the birds that were roosting in this frame through ImageJ. A student of mine did the same for the photo. However, we are off by 100 birds. Is it possible to see which birds only one of us recorded?

thanks in advance,



With a image we could count.
Would that suit you?

Dear Mathew, thank you for your replay. However I do not understand what you mean.

Greetings Nadia


it would be great if you could provide us with an example.
Best if you have the input image and somehow the counts from the two observers as locations on that image.

To create quick visualizations can be easy.

The data is on my work computer, will be back behind it on Monday. Will send an example then. Thanks in advance!

These are the two files that I want to compare. I want to know which white dots on the photo are circled in one file but not in the other. Is there a way for me to see the locations of those mismatches?

Greetings nadia

Uploading: Terns_Nadia.tif…

Uploading: 20190529 Sternen Deltaquad - 963 counted.tif…

Hi I am unable to download the images…

would there be an option to email them to you? I have some problems with uploading the files, they keep disappearing .

If they are not too large. Attachments larger than 15 Mb may be rejected. Sent you a PM with my email address.

Dropbox, Xdrive or google drive might be better. Usually institutions provide options to share files with external people. You could ask the IT department.

Please keep the discussion open. If uploading doesn’t work for you, use a public file sharing service of your choice. Don’t use private e-mail, that’s against the spirit of this forum where others should be able to follow the discussion and learn from it.

Please try again, and wait until the images have finished uploading (and appear in the preview) before clicking the Reply button.


A quick and dirty visualization you could do this way. I did the example based on these crops:
count1.tif (1.1 MB)
count2.tif (1.1 MB)

Take your images with the overlay. Transfer them to the ROI Manager (if the points are already selections you can skip this step:
Image > Overlay > To ROI Manager

Select the detection’s in the ROI Manager then create masks:
Edit > Selection > Create Mask
Please rename the mask image then otherwise the image will be overwritten by another create masks operation: Image > Rename…

The detection’s are now binary masks (8-bit, 0 and 255).
You can dilate them so they are more visible.
Process > Binary > Dilate

Mask1.tif (352.3 KB)
Mask2.tif (352.3 KB)

Then you can show the different detection’s on top of the original image.
First convert the RGB original image into 8-bit:
Image > Type > 8-bit

Then merge the different images as channels:
Image > Color > Merge Channels…

Add the original image as grey, one marker image as green the other as red.
You can then see the individual detection’s next to each other.

Composite.tif (1.0 MB)

One can improve on this. But from this quick visualization you can already see that it is not so easy as a simple overlap. Essentially to get a better result is to write a script that takes the locations and computes the locations that are close enough to be selecting the same object. Maybe someone here solved something like this already. Its not rocket science but needs a bit of development.

You can maybe consider to use the cell counter ( or the MTB cell counter (

this allows to save and load marker and visualize them with different colors.

Just one addition. From the visualization I created one can use a simple overlap as a test if they have been counted by the two observers. Its not perfect. Meaning, there will be false positives and false negatives, depending on how much you dilate the mask image.

So you can try the following macro for doing that based on these input images:
Mask1.tif (353.8 KB)
Mask2.tif (354.0 KB)
original.tif (352.3 KB)

imageCalculator("AND create", "mask1","mask2");

run("Morphological Reconstruction", "marker=[marker] mask=mask1 type=[By Dilation] connectivity=4");
imageCalculator("Subtract create", "mask1","marker-rec");

run("Morphological Reconstruction", "marker=[marker] mask=mask2 type=[By Dilation] connectivity=4");
imageCalculator("Subtract create", "mask2","marker-rec");

run("Merge Channels...", "c1=[Result of mask2] c2=[Result of mask1] c4=original create keep ignore");

Which gives you this result:
Composite.tif (1.0 MB)

Since there are less selections you can easier see what is wrong. But you can also see that there are some that are false positives. Less of an issue since you can easily spot them. The false negatives will be more of an issue, since they are not on there.

1 Like