Vesicle counting using threshold/segmentation

Hi All,

I am trying to quantify the number of synaptic vesicles from an electron microscope image (link attached). I used a straightforward threshold tool and this has allowed us to manually count the vesicles, however I am looking to automate it. Given the brightness and how closely apposed individual vesicles are I am unable to find a reliable way to (or at least to the point where they are distinguishable) identify and segment the vesicles.

I would like to know how I can improve my approach to quantifying these images.


Hey @rasam -

What is your current workflow then? Can you share the detailed, step-by-step workflow you are currently using?

Also - to clarify things… what do you consider synaptic vesicles? Which blobby-things are the objects you need to segment?

Zooming into your image…

… I can see the difficulty you are having segmenting - what I’m assuming are - the darker, circular blobs? You can see if you zoom in even more …

… that the edges of these objects are hard to define - even visually. So you can imagine how hard a time a computer might have in this case.

You can check out some helpful Segmentation tools - that might help…

But for sure - without higher resolution images and improved contrast… this task might remain difficult to automate.


Thanks for your reply. Right now, I am pretty much thresholding the image to the point where the individual vesicles are (visually) separate and counting them by comparing it to the original image.

1.set scale
2. duplicate image
3. convert image to 8-bit
4. apply threshold
4. Mark the ROI
5. count using cell counter plugin
There are two kinds of vesicles, the (different shades of) darker (full) and the lighter(empty) (as shown in fig in dropbox). Both are of more or less uniform size (diameter). I am not interested in quantifying the interested slightly larger “blobs” which in our case could be mitochondria.

I am hoping to segment the different shades of darker “vesicles” just to aid in counting. I agree given the contrast, it might be difficult to segment. I shall try the weka segmentation and morhpholib as you suggested.

In terms of manual counting, do you think my current settings can be improved ?

Thanks once again.

considering signal to noise on this sample image I wonder how confident you will be with the result from the thresholding approaches.
For example:

or after some filtering with eccentricity and solidity:

There could be many mistakes, for example, fragments of those mitochondria or unpicked vesicles…

Have you considered to use stereology instread? It should give you good estimates of the number of vesicles.



Hi IIya,
Thanks for your response. I understand its going to be difficult automating it. As you mentioned stereology is something that might work. I plan to consider it once I am done trying @eta’s suggestions including weka segmentation and morpholib tools.

Could you elaborate on how you were able to segment the above images?


These are roughly the steps as I remember:

  • noise filtering
  • background subtraction = flat field correction
  • image dilation
  • extrended minima transform to detect vesicles
  • steps of erosion and dilation for the detected vesicles
  • filtering of the detected vesicles based on their eccentricity and solidity features

It you want it in more details, I can recheck the steps.

1 Like

Thanks. I shall try them and provide an update here.