Nanopore size quantification and distribution


I am new to the community, so please pardon me for any ignorances. I am having trouble doing a simple size distribution analysis using threshold and then pore analysis. Please see the attached image available at this link: Dropbox - test.tif - Simplify your life

These are nanopores and I want to measure the radius of these and size distribution of the radius. I am having issues with the threshold and hence I am not able to use the Analyse particles function of Fiji/ImageJ. Can you please help me with the same. Is there any tricks? Also, if I do it manually, how would I go for that? I selected many pores using Shift+Oval tool but that gives me overall values not individual.

P.S.: I am more interested in threshold method as I have many similar images for analysis.

Hi Shankar,
I am not sure whether you are interested in segmenting and measuring the black centres or the white halos around the black centres. As you mentioning that you find thresholding difficult, I assume you are interested in the halos around the black centres that can touch each other for structures close to each other. The macro code below creates two separate masks of the sample image, one for the black centres and one for the light halos. It then uses the Marker-controlled watershed (requires installation of the MorphoLibJ plugin that is part of the IJPB-plugins;; in FIJI this can be easily activated by adding the IJPB-plugins update site) using the black centre mask as the marker to separate touching structures. The resulting structures are then added to the ROI manager and each of them is measured.
I hope this is gives you some ideas and does roughly what you want.
Good luck,

makeRectangle(0, 0, 1536, 1010);
run("Median...", "radius=2");

run("Duplicate...", "title=Outlines");
run("Convert to Mask");
run("Options...", "iterations=1 count=3 black do=Open");
run("Analyze Particles...", "size=100-Infinity show=Masks exclude include");

run("Duplicate...", "title=Centres");
run("Convert to Mask");
run("Options...", "iterations=1 count=3 black do=Open");

run("Marker-controlled Watershed", "input=[Mask of Outlines] marker=[Centres] mask=[Mask of Outlines] binary calculate use");
setThreshold(-1000000000000000000000000000000.0000, 1.9500);
run("Convert to Mask");
run("Analyze Particles...", "size=100-Infinity add clear");
roiManager("Show All");
run("Set Measurements...", "area mean center fit feret's redirect=None decimal=1");
roiManager("multi-measure measure_all");
type or paste code here

Screenshot of output:


Thanks a lot Volko. This is exactly what I am looking for and yes I am interested in the halos around the black centres. It is a really good starting point. Have a great day :slight_smile:

Dear all,
I’m interested to learn about nanopore size quantification and found this post.
But I run into trouble.
Using the test.tif image and the macro from above (using Fiji 1.53c and ImageJ 1.48v) the macro runs to the line:
roiManager(“multi-measure measure_all”);
and stops with the message “ROI manager Multi-measure: no selection”
Going through the macro line by line (or manually) both “Mask of Outlines” and “mask of Outlines - watershed” show no detailes.
Can you give me some hints?

Dear SBaunack,

It seems that the thresholding methods or size selection criteria used in the code are not appropriate for your images and no particles are selected and added to the ROI manager. So, you might want to look at the threshold functions used to segment the black centres and white halos around the pores to make them work for your images. Difficult to provide any further advice without seeing an example of your images.

Good luck,