Difference between two selections in one picture

Dear ImageJ users,

I’m completely new to using ImageJ, so I hope my question is not too easy. I’m currently using ImageJ to analyse SEM pictures of 3D prints that I make. The network that I print, has hexagonal shaped throughpores, as you can see in the images I will add in the next post (upload is failing now…). The largest structures that I print have quite nice throughpores, but the smallest structures (pushing the resolution limit of the printer) have deviant shapes. I’m trying to quantify how ideally shaped the throughpores are (of the 7 central hexagons only). I used the freehand selection to contour them, and then using a treshold to measure the area and perimeter. However playing with these parameters does not give a satisfied result. Now I want to compare the effective perimeter (drawn by hand containing all the deviations) with a hexagon that I draw between all the six corners. For the largest structures, the difference/variance/(1-overlap) should be minimal, and for the smallest structures bigger. Is there a way to measure this value?

Thank you in advance,
Kind regards,
Fréderick

I’m sorry for the quality of the pictures. I tried uploading the original tif files, but I presume they were too big. This are screenshots of the real pictures.

Kind regards,
Fréderick

1 Like

Hi
@frederickmatheuse
For your image # 2 (bottom), here is a macro that takes measurements.
(Do they match your goal?)
The macro works for your screenshot: I’m pretty sure it won’t (or very badly) perform in your real image. It will therefore have to be adapted.Try to upload your original images.
Regarding your first image (above) I have not tested anything.

//setTool("rectangle");
makeRectangle(170, 612, 508, 160);
run("Crop");
run("Duplicate...", "title=1");
run("Duplicate...", "title=2");
selectWindow("1");
run("Invert");
selectWindow("2");
run("Multiply...", "value=2");
run("Statistical Region Merging", "q=100 showaverages");
rename("3");
run("Duplicate...", "title=4");
setAutoThreshold("Minimum");
//run("Threshold...");
setOption("BlackBackground", false);
run("Convert to Mask");
run("Set Measurements...", "area perimeter limit add redirect=None decimal=2");
run("Analyze Particles...", "size=100-Infinity summarize add");
roiManager("Reset");
//------------------
// Step 2
//-------------------
selectWindow("3");
//run("Threshold...");
setAutoThreshold("RenyiEntropy");
setOption("BlackBackground", false);
run("Convert to Mask");
run("Fill Holes");
run("Analyze Particles...", "size=500-Infinity summarize add");
//--------------------
run("Tile");