Measuring border to border distance (particle analysis)

NND-CHN-P6.tif (324.4 KB)

I need to measure border to border distances (nearest neighbouring analysis) for my particles but, am not being successful. These are the steps and approaches that I have followed so far for the analysis:

  1. scaling, 8 bit adjustment, adjust threshold, analyse particles (show nothing, Display results checked), Plugins> Biovoxxel (2d particle distribution, average NND, etc.
  • The problem with this option is that the centroid to centroid and border to border are giving very different results (e.g. 3 nm versus 20 nm) despite having small nanoparticles. Which makes me doubt my approach.
  1. Based on a comment in this topic (Measuring the distance between neighbor irregular particle ( lamellar)),
    I tried scaling: 8 bit adjustment, adjust threshold, analyse particles (show count mask, everything unchecked), plugins> 3d> 3d distances> closest 2, borders
    But, I do not get any reasonable answer.

I am new to this environment so, sorry if there is anything missing or wrong here.
I would highly appreciate help with this issue.

Just to verify, your nanoparticles are much smaller than 10nm radius?

No in fact they are between 11-14nm.

With objects around 10nm radius, a centroid to centroid distance of around 20 makes sense, as would a border distance of 3nm. Either of those would be “almost touching” depending on your resolution. Distances might seem slightly off by a bit when also measuring distance along the Z axis since that resolution is usually lower.

1 Like

Thank you for your comments. The numbers that I gave were in fact for nanoprticle diameter size and not radius. I had misunderstood your first question.

For instance, in a simplistic consideration for one pair of particles, if the centroid to centroid distance is 20 nm and radius is 5.5 (for nanoparticle of 11nm diameter), then border to border should be 9 nm. Right? So, 3 nm would be too small.

1 Like

That is correct as long as the beads are separated only in 2D space (on a plane parallel to the objective). If your beads are vertically displaced, you may well get numbers like that due to the resolution, stretching, spherical aberrations, etc.

apparently not this!

For example, this is a sphere as visualized by confocal microscopy.
Snagged from

Caveat, I have not taken the time yet to look at your images and I do not think you stated what type of imaging you were doing. :slight_smile: YMMV.

I used scanning electron microscope and top view to scan my sample. The particles are distributed on a chip. So I dont have any vertical displacement. And also my first approach was based on 2D particle distribution analysis from Biovoxxel plugin.

1 Like

Hmm, does sound like it could be a problem then, hopefully someone familiar with BioVoxxel can help.

I am assuming your pixel sizes are set correctly in the metadata!

Yes. it seems so.
I scale the picture based on the distance indicated with manometer in SEM. I dont know how it appears in matadata.
Thanks again for your comments.

1 Like

Tagging @biovoxxel for this.

Hi @Hdy_Malekzad,

if you want to measure border to border distance, then the 2D particle distribution will not help you. That serves just as an estimation of the distribution type. it does not measure distances between borders.
The approach using border to border distance in the 3D Suite from @ThomasBoudier should actually give a reasonable outcome. have you tried to load the segmented (binary) image in the 3D manager and run the measure function in there.
I tried scaling your image according to the integrated scale bar (which is obviously not extremely accurate), then threhsold it, reparate the objects using the Adjustable Watershed plugin, started the 3D manager. pressed 3d segmentation, accepted the 128 to 255 limit, since the particles are segmented already. The output is a count masc. Then press add image in the 3D manager and select all. Then press measure. It will surely take long, since it compares every particle with every other one. So actually the sorting in the end is rather the problem. But it should give border to border distances correctly.

1 Like

Thanks for your comments. I went through the steps… It seems to be working well but since I have around 1200 particles, it took several hours. So, I had to switch off at some point. Because I thought it is better to pick some representative particles to reduce the time. I was wondering if it is possible to make a selection and then proceed? In the 3D ROI manager, when I apply “Add image” it selects all the particles automatically. There must be a way to mask some particles before 3D particle processing.

You could make a selection around a region of interest and duplicate only that region with [shift]+[d] (image >duplicate…) and add only this image to the 3D Manager.

Thanks for the guidance. I could make a duplicate.